python - 使用 Scripting Bridge 时隐藏 Python rocketdock 图标

标签 python macos itunes osx-mountain-lion dock

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

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

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

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

脚本效果很好,我可以通过 SB 从 iTunes 获取我需要的所有信息。我只是想让图标不弹出。为什么该特定方法调用会调用停靠栏图标?

最佳答案

将其从码头上拿下来的一种 hacky 方法是防止 Python.app从曾经出现在码头上:

编辑 /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 中有一个图标。

关于python - 使用 Scripting Bridge 时隐藏 Python rocketdock 图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12333500/

相关文章:

iphone - iOS上的企业分发应用程序,可以将ipa拖放到iTunes中吗?

python - Pandas :如何在同一单元格上读取多行 csv?

python - Python不应该将包安装在它自己的目录中吗?

ios - Apple Smart Banner (meta apple-itunes-app) 无法使用我的应用程序 ID - 在 iPhone Safari 上清除缓存后也无法使用

objective-c - 创建一个没有 Nib 的自定义 NSViewController

iphone - Xcode 线程 1 : Program recived signal: "EXC_BAD_ACCESS"

ios - 在哪里可以找到 iPhone 设备的 UDID?如果 iTunes 预计会在 macOS 10.15 之前退役,预计会在 wwdc19 中公布

python - 在 Centos 上安装 M2Crypto 时遇到问题

python - 在 Python 3 和 tkinter 中使用变量调用函数

macos - 在卸载或重新安装 Mac 应用程序时运行代码