Created
September 28, 2011 17:51
-
-
Save panupan/1248654 to your computer and use it in GitHub Desktop.
NSViewController responder chain integration
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// 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 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
*** 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!