我有一个NSView
,它被设置为view:
的NSMenuItem
出口。该视图包含NSTableView
(在NSScrollView
内部)和NSSearchField
。当用户单击特定的NSMenu
时,将显示NSStatusItem
。当我从Xcode启动应用程序(“构建并运行”)时,控件表现良好,但是每当我从Finder启动它时(就像用户一样),它们就无法工作,也不会引起任何关注。我的应用程序是LSUIElement
。谁能帮我吗?谢谢。
最佳答案
由于您的应用程序是UIElement
,因此NSMenu
不会成为焦点。您必须将NSTimer
设置为0.01秒才能显示NSMenu
,并且应该使应用程序处于活动状态:
- (void)statusItemClicked {
[NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(showMenu) userInfo:nil repeats:NO];
[NSApp activateIgnoringOtherApps:YES];
}
- (void)showMenu {
[statusItem popUpStatusItemMenu:statusMenu];
}
关于cocoa - NSView(NSMenuItem的导出)中的NSTableView和NSSearchField不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2483435/