鼠标点击iOS13.4

Posted

技术标签:

【中文标题】鼠标点击iOS13.4【英文标题】:Secondary mouse click on iOS13.4 【发布时间】:2020-03-27 08:33:58 【问题描述】:

只是在 ios13.4 中使用新的鼠标/触控板支持并尝试检测主要和次要鼠标按钮点击。

我可以通过将 UITapGestureRecognizer 上的 buttonMaskRequired 设置为 UIEventButtonMaskPrimary 或 UIEventButtonMaskSecondary 来检测它们(主要或次要点击)

但是,如果我尝试同时识别两者 (buttonMaskRequired = UIEventButtonMaskPrimary | UIEventButtonMaskSecondary),则手势识别器不会触发(对于鼠标单击。)

有人知道这是“疏忽”还是我做错了什么?

【问题讨论】:

您可能需要两个不同的识别器。如果您在单个掩码中设置两个标志,则可能意味着需要同时单击两个按钮。 UIGestureRecognizer 上的 buttonMask 属性应该有助于确定使用了哪个鼠标按钮单击。 developer.apple.com/documentation/uikit/uigesturerecognizer/… 但是,在我的测试(iPadOS 13.5)中,无论您使用哪个鼠标按钮,该属性始终为 rawValue 0。似乎是 iOS 中的一个错误。 【参考方案1】:

我已经取得了进步 - 但感觉真的很老套。

创建 2 个轻击手势识别器 - 一个带有主要蒙版集,另一个带有辅助蒙版集。然后,如果 UITouch 类型为 UITouchTypeDirect,我会在 gestureRecognizerShouldBegin: 委托调用中终止辅助手势,以便停止使用手指获取 2 个点击事件。

【讨论】:

我已经覆盖了gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch),但触摸的类型始终是.direct,即使使用鼠标也是如此 @SteveKuo 它可以在您的 Mac Catalyst 应用程序中使用吗? ... UIEventButtonMaskSecondary 似乎只能使用 CTRL+CLICK 工作...如果我从 Catalina 的设置中更改触控板设置,则不会通过 UIEventButtonMaskSecondary 检测到辅助点击

以上是关于鼠标点击iOS13.4的主要内容,如果未能解决你的问题,请参考以下文章

iOS打包(ipa包)

C#怎么模拟鼠标点击

unity中为啥鼠标点击后就看不见鼠标了

jquery鼠标点击事件是啥?

QT如何获取窗口外的鼠标点击事件,或者鼠标坐标

如何在WPF中模拟鼠标点击