2011-05-22 75 views
6

我想构建一个没有菜单栏,停靠栏图标或位于应用程序切换器中的应用程序。基本上,它应该像Quicksilver:我会通过一个全球热键来激活它,从Safari来说,并且出现一个小窗口,但Safari不会无效,也不会有不同的菜单栏。我希望你明白我的意思......Mac OS X - 没有菜单的应用程序?

我该怎么做?我可以阻止停靠图标,应用程序切换器,但我不知道如何防止其他应用程序在我的应用程序窗口显示或如何删除菜单时变为非活动状态。

感谢您的任何提示!

回答

6

尝试搜索“LSUIElement”。这应该会给你所有你需要的信息。

(具体而言,this page in the documentation)。

+0

我仍然只能要么激活我的应用程序的:

然后,要在适当的时候(例如,通过一个全球性的键盘快捷键触发时),你可以做这样的事情竟带来一个窗口前窗口并停用其他应用程序的窗口,或者反过来...... – ryyst 2011-05-22 19:16:19

+1

@ryyst:您希望您的应用程序的窗口变成“关键”而不会变成“主要”。 – 2011-05-22 22:09:59

+0

@Josh Caswell:我这样做,但我的应用程序的窗口仍然不活动(灰色)。我尝试创建一个'NSTextField'第一响应者,但这不起作用... – ryyst 2011-05-22 23:01:32

5

戴维已经说过,在你的应用程序的Info.plist文件中添加

LSUIElement YES 

。这将摆脱图标和菜单栏。

ProcessSerialNumber psn = {0, kCurrentProcess}; 
SetFrontProcess(&psn); 

[someWindow makeKeyAndOrderFront:nil]; 
+0

我希望我的应用程序的窗口来到前台,并且希望能够在没有我变成不活动状态之前打开的应用程序(即标题栏变为浅灰色)的情况下键入文本字段。 – ryyst 2011-05-22 23:00:30

+0

上面的代码不适合你吗?对于文本字段焦点,您可能需要设置第一响应者,但其他人应该工作。 – puzzle 2011-05-23 20:16:02

+0

不,它没有。正如我所说,其他应用程序变得无效。 – ryyst 2011-05-24 16:35:33