NSView - trouble setting next responder on 10.10 - works okay on 10.9
NSView - trouble setting next responder on 10.10 - works okay on 10.9
- Subject: NSView - trouble setting next responder on 10.10 - works okay on 10.9
- From: Jonathan Mitchell <email@hidden>
- Date: Wed, 30 Sep 2015 17:15:12 +0100
In my app i manage the responder chain on 10.8 and 10.9 to insert the NSViewController into the responder chain.
The view controllers are inserted just below the NSWindowController so that designated view controllers can respond to actions coming up the chain from any source.
ie: the NSViewController for any view will NOT be the view’s next responder - it will be higher up in the chain.
On 10.10 the view controller is automatically assigned to be the view’s next responder.
I want to override this behaviour to not assign the controller as the view’s next responder.
I thought this would be trivial but once the NSView nextResponder has been set to the controller the view seems reluctant to have its next responder changed.
The next responder remains set to the view controller;
On 10.10
The following works when linked against the 10.9 SDK but fails when linked again the 10.10 SDK.
@interface TestViewController : NSViewController
@end
@implementation TestViewController
- (void)setView:(NSView *)view
{
NSResponder *controlleNextResponder = self.nextResponder; // a window, the view is already in a nib
NSResponder *viewNextResponder = view.nextResponder;
NSLog(@"Before : %@ (== %@)", view.nextResponder, viewNextResponder);
NSView *interimResponder = [NSView new];
view.nextResponder = interimResponder;
NSLog(@"Interim : %@ (== %@)", view.nextResponder, interimResponder);
[super setView:view];
self,view.nextResponder = viewNextResponder;
self.nextResponder = controlleNextResponder;
NSLog(@"After : %@", view.nextResponder);
NSAssert(self.view.nextResponder == viewNextResponder, @"next responder is not restored");
}
@end
Jonathan
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden