Yes. As I answered before, you have to get things scheduled in the right runloop mode. But once you do, it's quite easy:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { NSStatusItem *item = [[[NSStatusBar systemStatusBar] statusItemWithLength:24] retain]; [item setImage:[NSImage imageNamed:NSImageNameApplicationIcon]]; [item setEnabled:YES]; NSMenu *m = [[NSMenu alloc] init]; [item setMenu:m]; NSTimer *t = [NSTimer timerWithTimeInterval:1.0 target:self selector:@selector(updateMenu:) userInfo:m repeats:YES]; [[NSRunLoop currentRunLoop] addTimer:t forMode:NSDefaultRunLoopMode]; [[NSRunLoop currentRunLoop] addTimer:t forMode:NSEventTrackingRunLoopMode]; } - (void)updateMenu:(NSTimer *)t { NSMenu *m = [t userInfo]; NSString *s = [[NSDate date] description]; NSMenuItem *i = [[NSMenuItem alloc] initWithTitle:s action:nil keyEquivalent:@""]; [m addItem:i]; [m update]; } Run that, open the poorly-iconed status item, and don't touch your mouse. Yes, this code is terrible and leaks and all that. It's just to illustrate the point. Dave On Apr 20, 2012, at 11:32 AM, vinayak pai wrote: > Yes. I am facing the same problem. I am updating the menu in > performSelectorOnMainThread. If the menu is kept open without any > event then there is menu refreshing issue ie. sometimes some items > will be shown twice. When I move the mouse over items then it will > update. But, when the menu is open and mouse is still then the menu > won't update. Is there a way to update the menu while it's open > without any mouse movement like System WiFi menu? > > Best regards, > VinPai _______________________________________________ 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: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com