【发布时间】:2012-10-15 13:58:33
【问题描述】:
我有一个必须一直运行的应用程序(如果用户同意的话)。
当用户退出应用程序时,我将前台应用程序转换为 LSUIElement(应用程序只有一个菜单栏图标,停靠图标和菜单消失)。
我在菜单项中有一个选项可以正常工作并将 LSUIElement 转换为前台应用程序(我使用函数 [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular] 和 [NSApp activateIgnoringOtherApps:YES])。
当用户双击应用程序时出现我的问题。我在委托方法applicationWillUnhide:(NSNotification *)notification 中再次使用[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular],除了没有出现的菜单外,一切都很好。如果我去另一个应用程序,然后我回来菜单就会出现。我尝试了不同的方法,但找不到好的方法。
我想知道当用户双击应用程序时调用的委托方法,或者在那一刻调用的NSApplication 的函数是什么,因为我认为在@ 中使用setActivationPolicy: 987654327@函数来晚了。
【问题讨论】:
-
你试过从
applicationShouldHandleReopen:调用它吗? -
是的,我试过了,但没有成功。
-
而在 applicationDidUnhide ?
-
我遇到了同样的问题。你找到解决办法了吗?
标签: macos cocoa lsuielement