我有一个NSView
,它被设置为一个的view:
出口NSMenuItem
。该视图包含一个NSTableView
(在一个内部NSScrollView
)和一个NSSearchField
。NSMenu
当用户单击特定的 时显示NSStatusItem
。当我从 Xcode 启动应用程序(构建和运行)时,控件表现良好,但每当我从 Finder 启动它时(就像用户那样),它们不起作用并且没有任何焦点。我的应用程序是一个LSUIElement
. 谁能帮我吗?谢谢。
user142019
问问题
651 次
1 回答
3
因为,您的应用程序是一个UIElement
,所以它NSMenu
不会成为焦点。您必须将 a 设置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];
}
于 2010-03-20T17:37:36.910 回答