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 ([email protected])
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 [email protected]