Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa Mac OS X-没有菜单的应用程序?_Cocoa_Macos - Fatal编程技术网

Cocoa Mac OS X-没有菜单的应用程序?

Cocoa Mac OS X-没有菜单的应用程序?,cocoa,macos,Cocoa,Macos,我想构建一个没有菜单栏、dock图标或位于应用程序切换器中的应用程序。基本上,它应该像Quicksilver:我会通过全局热键激活它,比如说从Safari,然后会出现一个小窗口,但Safari不会变为非活动状态,也不会显示不同的菜单栏。我希望你明白我的意思 我该怎么做?我可以阻止dock图标,即应用程序切换器,但我不知道如何防止其他应用程序在我的应用程序窗口显示时变为非活动状态,或者如何删除菜单 谢谢你的提示 尝试搜索“LSUIElement”。这会给你所有你需要的信息 (特别是,)。正如戴夫所

我想构建一个没有菜单栏、dock图标或位于应用程序切换器中的应用程序。基本上,它应该像Quicksilver:我会通过全局热键激活它,比如说从Safari,然后会出现一个小窗口,但Safari不会变为非活动状态,也不会显示不同的菜单栏。我希望你明白我的意思

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

谢谢你的提示

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


(特别是,)。

正如戴夫所说,添加

LSUIElement  YES
在应用程序的Info.plist文件中。这将摆脱图标和菜单栏

然后,要在适当的时间(例如,当通过全局键盘快捷键触发时)将窗口真正带到前面,可以执行以下操作:

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

[someWindow makeKeyAndOrderFront:nil];

我仍然只能激活我的应用程序窗口并停用另一个应用程序窗口,或者以其他方式…@ryyst:你希望你的应用程序窗口变成“键”而不是“主”。@Josh Caswell:我这样做了,但我的应用程序窗口仍然处于非活动状态(变灰)。我试图创建一个
NSTextField
第一响应程序,但这不起作用…@ryyst:您试图绕过AppKit的一些基本内置行为;这并不容易。综上所述,QS似乎在进行自己的事件调度,即不使用标准响应程序链——他们实际上已经对NSApplication进行了子类化,这很少见。@Josh Caswell:好吧,我将研究一下。。。谢谢我希望我的应用程序窗口位于最前面,并且我希望能够在没有应用程序处于非活动状态之前(即标题栏变为浅灰色)的情况下输入文本字段。上面的代码不适合你这样做吗?对于文本字段焦点,您可能需要设置第一个响应者,但其余的应该可以工作。不,它不能。正如我所说,其他应用程序变得不活跃。