我有一个LSUIElement
应用程序需要将其状态保持为LSUIElement
(它不能有停靠图标)此应用程序由插件启动和处理。
当我更改应用程序使其成为“常规”应用程序(不带LSUIElement
)时,它[NSApp activateIgnoringOtherApps:YES]
可以完美运行。但是,当我将其设置为LSUIElement
它时,它会显示窗口,但该窗口被卡在 safari 后面(插件正在运行的地方),但在其他所有内容之上。我在打电话-[NSWindow makeKeyAndOrderFront:self];
,但这没有任何区别。
需要明确的是,“插件”方面是无关紧要的,因为插件和应用程序是两个独立的进程。该插件向应用程序发送一个事件(通过一个马赫端口),该应用程序调用一些代码来打开窗口并使其成为焦点。问题是使其成为焦点的代码仅在它不是LSUIElement
应用程序时才有效。
我已经详尽地搜索了一个现有的调用来完成这项工作,我愿意接受有关如何伪造鼠标点击的建议,甚至运行一些苹果脚本来完成这项工作,也许有一种未记录的方法可以做到这一点。
Apple 文档中的LSUIElement
状态“应用程序没有出现在 Dock 中并且没有菜单栏,但它可以通过编程方式激活”,但我找不到启用此功能的魔法。