ich eine Anwendung schreibe, die systemweite Tastenfolgen auf Mac OS X reagierenWie verwende ich Mac OS X NSEvents in der wxPython-Anwendung?
So fand ich einige Key-Logger-Beispiele, die funktionieren sollte und eine Wand schlagen, weil alle Beispiele auf NSSharedApplication basieren() und PyObjC AppHelper.runEventLoop() während meine Anwendung in WxPython geschrieben wird.
Hier poste ich eine Modifikation des einfachsten Beispiels von https://github.com/ljos , dass ich dachte, es sollte funktionieren. Aber das tut es nicht.
from AppKit import *
import wx
class AppDelegate(NSObject):
def applicationDidFinishLaunching_(self, aNotification):
NSEvent.addGlobalMonitorForEventsMatchingMask_handler_(NSKeyDownMask, handler)
def handler(event):
print (u"%@", event)
app = wx.App()
delegate = AppDelegate.alloc().init()
NSApp().setDelegate_(delegate)
app.MainLoop()
Es ist offensichtlich, dass die MainLoop() nicht die delegierten NSEvents zu fangen.
Nach app = wx.App() wird die NSApp() korrekt zurückgegeben. Warum funktioniert das nicht? Wie kann ich es funktionieren lassen?