我的问题是,我正在使用一个NSEvent,它恰好有一个类型为NSEventModifierFlags的变量modifierFlags。
我想检查用户是否按下了修饰键(Command),所以基本上我想检查CommandKeyMask是否打开。
在Swift中,最佳/正确的方法是什么?
我的问题是,我正在使用一个NSEvent,它恰好有一个类型为NSEventModifierFlags的变量modifierFlags。
我想检查用户是否按下了修饰键(Command),所以基本上我想检查CommandKeyMask是否打开。
在Swift中,最佳/正确的方法是什么?
if theEvent.modifierFlags.contains(.CommandKeyMask) {
Xcode6-Beta6对此进行了更改,我相信以下内容现在可以正常工作:
if theEvent.modifierFlags & .CommandKeyMask != nil {
此问题来自早期的Xcode 6测试版,正确答案现在是(Xcode 7/Swift 2):https://dev59.com/NmAf5IYBdhLWcg3w2Vwo#32004398
以下操作是可行的:
if (theEvent.modifierFlags & NSEventModifierFlags.CommandKeyMask).value != 0 {
因为RawOptionSet
有一个关于&
的定义。
func &<T : RawOptionSet>(a: T, b: T) -> T
需要注意的是,RawOptionSet
也实现了LogicValue
,所以以下方式也是可行的:
if theEvent.modifierFlags & NSEventModifierFlags.CommandKeyMask {
!= nil
。 - Grumdrig