在Mac OS X上启动应用程序时,如何防止应用程序窃取焦点?


13

这是一个示例用例:

  1. 开启Firefox
  2. 将光标放在可以输入的位置
  3. 打开其他内容(eclipse是我当前的示例。)
  4. 开始在Firefox中输入内容,直到eclipse失去焦点并中断您正在输入的内容

如何防止应用程序窃取焦点并打扰我的打字?

更新:

我得到的答案似乎表明这无法完成,但是可以在Windows上完成,因此我很难想象它无法在osx上完成,如果这样做的话,那将是一个巨大的可用性失败。


您可以链接到在Windows中执行此操作的源吗?
bwerks

Answers:


1

我认为您不能:D您始终可以在其他桌面上执行Eclipse;)


在MacBook上切换台式机在imo上工作太多(两个键相距很远,没有背光键盘..),我觉得4指放很多了。
erikvold

Windows可以做到这一点,我很难相信osx无法做到这一点,因为这将导致巨大的可用性失败。
erikvold

1
“我不喜欢”≠“可用性失败”。
劳伦斯·贝拉斯克斯

是的..但这不是我所说的。我的观点是,在不向用户提供禁用功能的情况下,允许应用程序窃取焦点是可用性失败。
erikvold

尤其是当Windows-XP提供了相同的问题的解决方案..
erikvold

6

如果有人仍在寻找答案,我最近发现这篇文章应该为可能的解决方案提供一些启示:

http://reviews.cnet.com/8301-13727_7-20085680-263/keep-applications-from-stealing-focus-when-opening-in-os-x/

诚然,这是在提出原始问题后仅一年多的时间,但看来人们仍在寻找生活中棘手问题的答案。

TL; DR:您可以潜在地修改应用程序本身,并向应用程序的“ info.plist”添加参数集,也可以编写脚本以在其他窗口之后启动应用程序。第三个“选项”基本上说,即使在其他应用程序启动时,您也可以将其保持在其他应用程序之上,但这不一定会阻止新启动的应用程序窃取焦点。


注意:请不要浪费时间... CNet删除了此答案中引用的链接末尾的任何内容。自从这个答案发布至今已经快7年了。他们浪费了很多时间。
Seamus

0

这些质量是在您正在启动的应用程序和当前具有焦点的应用程序中定义的。瞧,您从中启动Eclipse的Finder也是一个应用程序-如果Eclipse没有从Finder夺走焦点,那么看起来应用程序的启动似乎没有做任何事情。因此,默认设置是将重点放在应用程序启动上。也许有一个使它“专制”的Firefox插件?您始终可以将LSUIElement密钥添加到已启动的应用程序的Info.plist(在应用程序捆绑包内),该键会占用整个应用程序的UI元素,但是这可能会在一定程度上降低其实用性。

在另一个空间中执行一个新应用程序然后切换回去对我没有用;加载完成后,启动的应用程序只会将您带回该空间。

确实,防止失窃的万无一失的方法只是抱着马,等应用启动后再加载。大多数高级用户会在后台打开他们经常使用的所有应用程序,并仅在需要转移注意力时才打开新功能。


我从基座上打开了eclipse,但是如果与答案中的Finder情况相同,则您的答案有问题:eclipse会从Finder或基座上窃取焦点无关紧要,因为之后它会从Finder或焦点上窃取焦点是当我切换到Firefox并开始输入内容时。
erikvold

总结一下,我想做的事情不能做到afayk吗?
erikvold

是的-除非您当前的应用程序禁止,否则任何应用程序都可以随时窃取焦点。某些应用可能会在启动周期中多次执行此操作,然后再解决-我当然已经经历过。确实,这是应用程序的功能,规避它的唯一方法是按我上面所述编辑应用程序或使用其他应用程序。
NReilingh 2010年

因此,windows将允许您防止应用程序窃取焦点,但是osx不能。.我很难相信。
erikvold

真奇怪-这里有很多有关防止Windows应用程序窃取焦点的问题,并且解决方法似乎是第三方软件。
NReilingh 2010年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.