我正在编写一个独立于平台的 Python 应用程序。目前它在 Linux 和 OSX 上运行。但是,我想集成特定于平台的代码。更准确地说,我想使用原生通知系统(Growl、Mountain Lion 的通知中心、GNOME 通知)。
到目前为止,我设法集成了 GNOME 通知。就我使用 PyObjC 发送它们而言,Mountain Lion 通知工作正常。这是我遇到的一个大问题:
为了让 PyObjC 正常工作,我需要调用AppHelper.runEventLoop()
. 否则,我可以发送通知,但我无法对单击通知或任何其他需要 Cocoa 库回调我的脚本的内容做出反应。但是由于我的应用程序应该是平台独立AppHelper.runEventLoop()
的,这不是我想要的事件循环。我应该提到,尽管有通知,但我的应用程序不是 GUI 应用程序,实际上有它自己的事件循环。
我试图创建一个额外的线程来运行 Cocoa 事件循环,但没有成功。
有任何想法吗?