Thanks a lot for helping out! That would work, but I would prefer if I didn't have to expose the subviews. Especially, since those are not available when I use the custom view in IB. I tried overriding becomeFirstResponder like
- (BOOL)becomeFirstResponder { [[self window] makeFirstResponder:firstSubview]; } which takes care of making the first subview the key view when tabbing to the parent custom view. I also tried overriding -insertTab: to detect when trying to tab from the last subview so I could move the key view to the one after the parent view in the key view loop, but for some reason it never gets called. Regards, Andreas On Mon, Aug 10, 2009 at 2:34 PM, Keith Blount <keithblo...@yahoo.com> wrote: > > You should be able to do this with a combination of -becomeFirstResponder, > -acceptsFirstResponder, -setNextResponder. If B isn't supposed to be the > first responder at all, then it should return NO for -acceptsFirstResponder > (but its subviews x and y should return YES). > > Then, in the superview that holds A, B and C, you could do something lie > the following after you have set up the view hierarchy: > > [A setNextResponder:[B x]]; > [[B x] setNextResponder:[B y]]; > [[B y] setNextResponder:C]; > [C setNextResponder:A]; > > (The above assumes that subview B has methods -(NSView *)x and -(NSView *)y > to return its subviews, of course). > > If you're adding the subviews in IB, of course, you could just hook it all > up there and avoid the code altogether. > > All the best, > Keith > > > I am wondering whats the best approach to handle the key view loop in a > > custom NSView that consists of several sub-views that the user can tab > > between? > > > > Lets say I have three views A, B, and C, all chained up in that order in > > the key view loop. if B is my custom view consisting of subviews B.x and > > B.y, then I want the key view to go like A -> B.x -> B.y -> C. > > > > My current thinking is to override - (BOOL)becomeFirstResponder to change > > first responder to B.x when B becomes first responder and to set the next > > key view of B.y to the next key view of B. > > > > Is this how it's supposed to be done? > > > > / Andreas > > > > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com