Re: newb question on documents, nibs & the menu bar
Re: newb question on documents, nibs & the menu bar
- Subject: Re: newb question on documents, nibs & the menu bar
- From: Mike Abdullah <email@hidden>
- Date: Sun, 29 Jan 2006 10:29:53 +0000
Ah, so that is the way to do it then. I think I just won't bother
with this menu item for the time being then!
Bindings would seem like a possible answer though. I don't know very
much about them, but from what I do know, it would seem to me that
this is the kind of case where they would be handy.
Mike.
On 29 Jan 2006, at 01:55, PGM wrote:
Yeah, I indeed have a windowDidBecomeMain notification upon which
the menu is ticked. Another way to do it would be to put the code
in - (BOOL)validateMenuItem:(NSMenuItem*)anItem, so that it is
invoked when the user actually clicks the menu. However, as people
more often click in menus than that they change documents and
validateMenuItem is invoked for every item in the menu, the latter
method would give substantially more overhead.
Maybe there's a way to do it using bindings, but I never really got
into those (I somehow started out with my app thinking that I
wanted it to be able to run on Jaguar).
Patrick
On 28 Jan, 2006, at 16:09, Mike Abdullah wrote:
OK, I can see how that code would work. But the thing is, say I
switch to a different document within the app which has a
different setting, then surely this wouldn't work? As far as I
can see, I would have to detect the document switch somehow and
set the menu bar manually from this.
It just seems to me that this is not a very Cocoa way of doing
things, that's all.
Mike.
On 28 Jan 2006, at 20:30, PGM wrote:
I use something like the following. I modified the code a bit in
Mail, so there is no guarantee that simply copy pasting will
work, but you may get the idea.
//connect this action to the popUpButton
//or include the code into your own popUpButton action
- (IBAction)clickedPopUpButton:(id)sender
{
int choice = [sender indexOfSelectedItem];
//get the menu to which the submenu belongs ("Action") and
then the submenu ("Choice")
NSMenu *choiceMenu = [[[[[NSApp mainMenu]
itemWithTitle:@"Action"] submenu] itemWithTitle:@"Choice"] submenu];
int i;
//loop through the available choices (three in your case) and
tick the correct one
for(i = 0; i < [choiceMenu numberOfItems]; i++){
if(i == choice){
[[choiceMenu itemWithTag:i] setState:NSOnState];
}
else{
[[choiceMenu itemWithTag:i] setState:NSOffState];
}
}
}
Best, Patrick
On 28 Jan, 2006, at 14:48, Mike Abdullah wrote:
I need some advice on getting the right behaviour in my app with
regard to the menu bar.
I have a doc-based app. In the document window there is a popup
button which offers the user 3 different choices. In my menu
bar there is a submenu that offers the equivalent of this, with
a sperate menu item for each item in the popup button.
I have used the First Responder in MainMenu.nib to send the
events of the user clicking on the menu bar item to the window's
controller and this works fine. However, how do I send stuff
back? I need to place a tick by whichever of the menu bar
choices the user has made.
Thanks,
Mike.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40sympatico.ca
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden