gpt4 book ai didi

python - 使用 PyObjC 获取全局滚动事件

转载 作者:太空宇宙 更新时间:2023-11-03 19:30:44 26 4
gpt4 key购买 nike

如何使用 PyObjC 获取全局滚动事件?可以通过 NSEvent 调用来完成吗?

示例代码会很棒...

最佳答案

您的 NSEvent 走在正确的轨道上!只要您不想修改事件,而只是观察它,就像调用 addGlobalMonitorForEventsMatchingMask:handler: 一样简单。每当发生您指定类型的事件 with the mask 时,您的应用程序都会通过回调收到通知被发布到另一个应用程序。* 处理程序参数是一个 block ,但不需要让您担心,因为 block 参数在 PyObjC 中比在直接 Obj-C 中更容易处理:您可以传递任何可调用对象(函数、方法、类等),桥将处理其余的事情。这就是您需要做的:

def callback(event):
NSLog(u"%s" % event)

NSEvent.addGlobalMonitorForEventsMatchingMask_handler_(NSScrollWheelMask, callback)

在回调中,您将获得实际事件的副本,您可以查询诸如 deltaX 之类的内容。或者任何你喜欢的东西。

请注意,与 AppKit 中许多其他有趣的方法一样,这个方法是 10.6 中的新方法,并且不在旧版本(即 Apple 提供的)PyObjC 的元数据文件中。这意味着,如果您尝试使用默认安装的网桥构建应用程序,它将失败。您必须使用较新的版本。

<小时/>

*如果您想将事件发布到您的应用程序,则必须使用 addLocalMonitorForEventsMatchingMask:handler: 。不幸的是,一个事件监视器无法同时获取您的应用程序和其他应用程序的事件。

关于python - 使用 PyObjC 获取全局滚动事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5999869/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com