鼠标点击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的主要内容,如果未能解决你的问题,请参考以下文章