【问题标题】:Hide Python rocket dock icon when using ScriptingBridge使用 ScriptingBridge 时隐藏 Python 火箭停靠图标
【发布时间】:2012-09-02 05:54:18
【问题描述】:

我正在使用 ScriptingBridge 检索在 iTunes、Mac OS X 中播放的当前曲目。

from ScriptingBridge import SBApplication
iTunes = SBApplication.applicationWithBundleIdentifier_("com.apple.iTunes")
print iTunes.currentTrack().name()

但是当我运行最后一行时,实际上得到了曲目名称,一个应用程序出现在 Dock 中,并且在我关闭我的 Python 程序之前不会离开,无论我是在 REPL 中运行它还是作为脚本运行它。图标是这个,至少在我的机器上:

/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/Resources/PythonInterpreter.icns

脚本运行良好,我可以通过 SB 从 iTunes 获取所需的所有信息。我只想阻止图标弹出。为什么该特定方法调用会调用停靠图标?

【问题讨论】:

  • 我的快速修复是通过将<key>LSUIElement</key><string>1</string> 添加到/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/Info.plist 来破解它,但这不是很优雅,也不是我希望其他用户必须做的更改。
  • 如果您不介意,让我们在答案部分得到您的答案。如果没有,我也很乐意这样做。

标签: python macos itunes osx-mountain-lion dock


【解决方案1】:

将其从 Dock 中移除的一种巧妙方法是防止 Python.app 出现在 Dock 上:

编辑 /System/Library/Frameworks/Python.framework/Versions/Current/Resources/Python.app/Contents/Info.plist 并将这个键值对添加到主 <dict> 元素:

<key>LSUIElement</key><string>1</string>

我希望有另一种方法来做到这一点,因为这种变化是全局性的——没有任何 Python 脚本(使用系统 Python)会出现在具有此设置的扩展坞上。自从发布这个问题以来,我将我的 LSUIElement 设置回 0,因为没有其他方法可以抓取例如 matplotlib 生成的窗口,除非它在 ​​Dock 中有一个图标。

【讨论】:

  • 创意+1!但是现在在花了 2 个小时寻找一个真正有效的答案之后,我想知道它是否真的那么重要。有趣的是,现在我可以很容易地看到解决方案是多么遥不可及,我意识到我不在乎,即使我经过十几次搜索才到达这里。
  • @nurp:Apple 在 2015 年 9 月 30 日发布的 OS X 10.11 "El Capitan" 中引入了 SIP(在我原来的帖子之后大约一年半)。 Configuring System Integrity Protection 上的文档描述了如何禁用/启用 SIP,从 macOS ≥ El Capitan 开始,您必须在 /System/**/* 中编辑任何内容。
猜你喜欢
  • 2014-06-12
  • 2014-08-10
  • 1970-01-01
  • 2011-02-19
  • 2011-06-10
  • 2017-07-13
  • 1970-01-01
  • 2013-01-13
  • 1970-01-01
相关资源
最近更新 更多