1

我有一个NSView,它被设置为一个的view:出口NSMenuItem。该视图包含一个NSTableView(在一个内部NSScrollView)和一个NSSearchFieldNSMenu当用户单击特定的 时显示NSStatusItem。当我从 Xcode 启动应用程序(构建和运行)时,控件表现良好,但每当我从 Finder 启动它时(就像用户那样),它们不起作用并且没有任何焦点。我的应用程序是一个LSUIElement. 谁能帮我吗?谢谢。

4

1 回答 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 回答