我正在构建一个Cocoa应用程序,它作为状态栏中的项目运行。这个应用程序有一个About窗口和一个激活窗口的项目,使用标准的Cocoa机制(-[NSApplication orderFrontStandardAboutPanel:]
)。当然,这一切都是自动化的。
除了一件事之外,它的效果很好:与大多数关于Windows不同,它会在所有其他窗口下面显示,而不是在顶部。我相信这是因为应用程序没有UI,所以它的所有窗口都自动在其他窗口下面。有没有办法可以挂钩到NSApplication机制来显示About窗口,这样我就可以把它发送到前面,让它响应⌘-W,这样它就可以从键盘上关闭了?我在NSApplication的文档中讨论过,但是没有办法获得我可以看到的About窗口的引用,以便我可以将它显示在顶部。
答案 0 :(得分:6)
有没有办法可以挂钩进入NSApplication机制来显示“关于”窗口,这样我就可以把它发送到前面了?
这就是orderFrontStandardAboutPanel:
的作用。
除了一件事之外,它的效果很好:与大多数关于Windows不同,它显示在所有其他窗口的下方,而不是在顶部。我相信这是因为应用程序没有UI,所以它的所有窗口都自动在其他[应用程序]窗口之下。
使用[NSApp activateIgnoringOtherApps:YES]
尝试bringing your application to the front。
请注意,如何使您的应用程序“没有UI”很重要:如果您正在使用LSUIElement,那将会有效,而LSBackgroundOnly非常严格意味着background- 仅。