【发布时间】:2008-11-21 23:07:02
【问题描述】:
我有一个用 NSBorderlessWindowMask 和 kCGDesktopWindowLevel 设置的窗口。当一个 NSPanel 应该从 Dock 图标菜单或状态栏项菜单的选择中出现时,如果应用程序不是最前面的窗口,则 NSPanel 将不会显示。
所以这个程序此时只有一个状态菜单项(想想 QuickSilver 是如何实现的),当我从我的菜单中选择首选项时,它被设置为使用 Makekey 和 orderfront 显示首选项面板,但是除非你刚刚启动了应用程序并且什么也没做,当您选择首选项时,什么也没有发生。
我发现,当我为 Sparkle 的检查更新选择菜单项时,检查更新面板会出现,然后会出现我让我打开的首选项面板。
所以看起来 makekeyandorderfront 并没有真正把它带到最前面,也许。
有谁知道如何解决这个问题? 我应该调用 makekeyandorderfront 之外的东西,还是与它结合使用?
提前致谢
【问题讨论】:
标签: objective-c cocoa