检查SwiftUI(macOS)中选项键的状态
我正在寻找一种方法来检查macOS上SwiftUI中选项键的状态检查SwiftUI(macOS)中选项键的状态,swiftui,Swiftui,我正在寻找一种方法来检查macOS上SwiftUI中选项键的状态 也就是说,根据是否按下选项键,我希望在.ontapsignature关闭中执行不同的操作。macOS only SwiftUI具有。modifiersmodifier可指定事件修饰符,因此您的案例如以下示例所示: Rectangle() .fill(Color.yellow) .frame(width: 100, height: 40) .gesture(TapGesture().modifiers(.op
也就是说,根据是否按下选项键,我希望在
.ontapsignature
关闭中执行不同的操作。macOS only SwiftUI具有。modifiers
modifier可指定事件修饰符,因此您的案例如以下示例所示:
Rectangle()
.fill(Color.yellow)
.frame(width: 100, height: 40)
.gesture(TapGesture().modifiers(.option).onEnded {
print("Do anyting on OPTION+CLICK")
})
.onTapGesture {
print("Do anyting on CLICK")
}
在手势上使用修改器
方法可能是首选,但实际上也可以使用CoreGraphics
中的CGEventSource
测试选项键本身:
导入核心图形
扩展CGKeyCode
{
静态let kVK_选项:CGKeyCode=0x3A
静态let kVK_RightOption:CGKeyCode=0x3D
表示变量:Bool{
CGEventSource.keyState(.combinedSessionState,键:self)
}
静态变量选项按键按下:布尔{
返回Self.kVK_Option.isPressed | | Self.kVK_RightOption.isPressed
}
}
这使您能够在没有修饰符
属性或方法的上下文中检测选项键(或与此相关的任何其他键)
扩展中的关键代码可以重命名为更快捷的代码,但这些名称可以追溯到经典MacOS的工具箱,并在Macintosh内部定义。我有一个包含所有旧钥匙代码的密码。查看onCommand修饰符