- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个库来从 Apple Magic Mouse 获取触摸事件。我正在使用私有(private)框架 MultitouchSupport.framework 并使用下面的代码来获取多点触控设备的列表。这工作得很好,我的库也工作得很好,除了它从所有多点触控设备(例如笔记本电脑触控板)获取触摸事件,而我只想从 Magic Mouse 获取事件。如何判断我正在查看的设备类型是仅监控鼠标?
我用来监听事件的代码是
NSMutableArray* deviceList = (__bridge NSMutableArray*)MTDeviceCreateList(); //grab our device list
for(int i = 0; i<[deviceList count]; i++) //iterate available devices
{
MTRegisterContactFrameCallback([deviceList objectAtIndex:i], touchCallback); //assign callback for device
MTDeviceStart([deviceList objectAtIndex:i], 0); //start sending events
}
那么我如何过滤掉从 MTDeviceCreateList 返回的 MTDeviceRefs 以只开始监听魔术鼠标设备?或者至少过滤掉默认的笔记本电脑触控板?是否有任何使用此 MultitouchSupport.framework 的文档?
最佳答案
至少还有四种其他方法来获取 MTDeviceRef
:
MTDeviceCreateDefault
MTDeviceCreateFromDeviceID
MTDeviceCreateFromGUID
MTDeviceCreateFromService
MultitouchSupport.framework 是一个私有(private)框架,您必须对其进行逆向工程才能了解应传递给这些函数的参数是什么。
此外,如果您从这些函数之一获取引用,则可能应该使用 MTDeviceRelease
函数释放设备引用。
或者您可以尝试使用 MTDeviceIsBuiltIn
函数过滤掉触控板。也许BuiltIn意味着笔记本电脑触控板。这只是一个疯狂的猜测,我只是查看了 MultitouchSupport 框架二进制文件中的符号。给定函数名称,其签名可能是
BOOL MTDeviceIsBuiltIn(MTDeviceRef 设备)
再说一次,这只是一个猜测,我还没有真正尝试过。
关于macos - 如何判断 MTDeviceRef 是什么类型的多点触控设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11928567/
我是一名优秀的程序员,十分优秀!