在MacOSX上,触控板支持多种手势,一种是在页面上向上、向下、向左或向右滑动。wxPython有一个面板来帮助创建滚动小部件wx.lib.滚动面板. 然而,它不支持手势,这是一个真正的痛苦。在
我已经尝试过修改NSView,如果它是一个普通的Objective C应用程序的话,它是这样做的,但是NSEvents使用子类化的方法(touchesBeganWithEvent:,等等),这些方法被用作事件的通知和处理。这与wxPython中的绑定调用不同。不过,如果目标C允许猴子修补。。。例如
def handleTouchBegin(event):
print "Hey a touch event has begun!"
view.touchBeganWithEvent_ = handleTouchBegin
但是,正如您可以猜测pyobjc错误(因为objectivec不支持monkey补丁,或者不支持干净漂亮的方式),我得到以下错误
^{pr2}$好吧,好吧,我可以做苹果说的,并子类化,但对象已经创建,所以我如何仍然捕捉事件。当然还有
NSEvent addGlobalMonitorForEventsMatchingMask:
and
NSEvent addLocalMonitorForEventsMatchingMask:
但这些也令人失望,因为它们要么根本不处理应用程序(全局处理所有其他事务),要么不处理单个NSView的事件(或者只处理它,我被误导了)。在
那我该怎么做呢?如果我错过了另一个选项,我知道我读过一些关于NSResponder的东西,但从我收集到的信息来看,NSView就是一个事件响应程序,而您不能将其添加到NSView中。在
是否有类似于QTKit中的观察者来监视负载状态的变化(https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/QTKitApplicationProgrammingGuide/AnatomyoftheQTKFramework/AnatomyoftheQTKFramework.html#//apple_ref/doc/uid/TP40008156-CH109-SW11)?在
ObjC不支持Python风格的monkeypatching…但是它支持一些类似的特性,比如方法转换、类设置、类别插入等等,PyObjC可以做所有这些事情。在
从我的头顶上看,从PyObjC发出的嗖嗖声应该是这样的:
相关问题 更多 >
编程相关推荐