Skip to content

Instantly share code, notes, and snippets.

@panupan
Created September 28, 2011 17:51
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save panupan/1248654 to your computer and use it in GitHub Desktop.
Save panupan/1248654 to your computer and use it in GitHub Desktop.
NSViewController responder chain integration
//
// RespondersView.h
// RespondersView
//
// Created by Panupan Sriautharawong on 9/13/11.
// Copyright 2011 Panupan.com. All rights reserved.
//
#import <Cocoa/Cocoa.h>
// Allows a NSViewController to be automatically added to the responder chain
@interface RespondersView : NSView {
IBOutlet NSViewController *viewController;
}
@end
//
// RespondersView.m
// RespondersView
//
// Created by Panupan Sriautharawong on 9/13/11.
// Copyright 2011 Panupan.com. All rights reserved.
//
#import "RespondersView.h"
@implementation RespondersView
- (void)setViewController:(NSViewController *)newController
{
if (viewController)
{
NSResponder *controllerNextResponder = [viewController nextResponder];
[super setNextResponder:controllerNextResponder];
[viewController setNextResponder:nil];
}
viewController = newController;
if (newController)
{
NSResponder *ownNextResponder = [self nextResponder];
[super setNextResponder: viewController];
[viewController setNextResponder:ownNextResponder];
}
}
- (void)setNextResponder:(NSResponder *)newNextResponder
{
if (viewController)
{
[viewController setNextResponder:newNextResponder];
return;
}
[super setNextResponder:newNextResponder];
}
@end
@XericDesign
Copy link

*** Assertion failure in -[xxxx setNextResponder:], /Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1404.46/Controllers/NSViewController.m:513
<xxxx 0x608000140bb0> is making itself its own next responder!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment