cocoa - Hide NSMenu programmatically from NSStatusItem -
i have application shows item in system's status bar, , 1 of items custom view nstextfield , nsbutton. when user clicks on status bar item, shows menu, user inputs text , presses button. triggers action displays window.
the problem i'm having is, when button pressed trigger action, menu remains visible. want hide menu, because action has been processed.
i've searched through api, couldn't find how it.
any ideas?
this how i'm creating menu:
nsstatusbar *bar = [nsstatusbar systemstatusbar]; self.statusitem = [bar statusitemwithlength:nsvariablestatusitemlength]; [statusitem setimage:[nsimage imagenamed:@"icon_status_bar.png"]]; [statusitem sethighlightmode:yes]; nsmenuitem *textinputitem = [[nsmenuitem alloc] initwithtitle:@"" action:nil keyequivalent:@""]; [textinputitem setview:mycustomview]; // created on nib file... nsmenu *menu = [[nsmenu alloc] initwithtitle:nslocalizedstring(@"statusbarmenutitle", @"")]; [menu additem:textinputitem]; [statusitem setmenu:menu]; [textinputitem release]; [menu release];
it's not obvious in docs, [menu canceltracking] want.
canceltracking dismisses menu , ends menu tracking. - (void)canceltracking
Comments
Post a Comment