检查 u 键是否被按下 Swift Cocoa
Check if the u key is pressed Swift Cocoa
我正在尝试检测 U
键是否被按下,如果是,它应该 print("BUT...BUT..");
但我不确定如何检查不同的键,因为按键文档非常糟糕。我找到了一个带有键码的答案,但它们只适用于 QWERTY 键盘
viewcontroller.swift
override func viewDidLoad(){
super.viewDidLoad();
let f = Foo();
f.doSonethimg();
}
override func keyDown(theEvent: NSEvent){
let f = Foo();
f.KeyDown(theEvent);
}
Foo.swift
public func doSonething(){
print("Hello from Dylib");
}
public func keyDown(event: NSEvent){
if let keyString = theEvent.charactersIgnoringModifiers where keyString == "u" || keyString == "U" {
Swift.print("BUT...BUT…")
}
}
我如何更改 keyDown
函数来响应 U
以及它的默认键是什么?
我看过 - and https://superuser.com/questions/399430/mouse-button-and-keypress-counter-for-mac-os-x
另见 - https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/EventOverview/HandlingKeyEvents/HandlingKeyEvents.html - 覆盖 keyDown: 方法
您可以使用 NSEvent
s charactersIgnoringModifiers
属性.
轻松检查字符
func keyDown(theEvent: NSEvent) {
if let keyString = theEvent.charactersIgnoringModifiers where keyString == "u" || keyString == "U" {
Swift.print("BUT...BUT…")
}
}
注意:检查 'u' 和 'U' 是有区别的。它们由 Shift 修改。因此,如果您想让两者都得到认可,请检查两者。 (如上例)
响应者链:
keyDown 函数仅在视图或 viewController 参与所谓的 Responder Chain.
时调用
要将您的 viewController 设置为响应链的一部分,请阅读以下内容 documentation。
我正在尝试检测 U
键是否被按下,如果是,它应该 print("BUT...BUT..");
但我不确定如何检查不同的键,因为按键文档非常糟糕。我找到了一个带有键码的答案,但它们只适用于 QWERTY 键盘
viewcontroller.swift
override func viewDidLoad(){
super.viewDidLoad();
let f = Foo();
f.doSonethimg();
}
override func keyDown(theEvent: NSEvent){
let f = Foo();
f.KeyDown(theEvent);
}
Foo.swift
public func doSonething(){
print("Hello from Dylib");
}
public func keyDown(event: NSEvent){
if let keyString = theEvent.charactersIgnoringModifiers where keyString == "u" || keyString == "U" {
Swift.print("BUT...BUT…")
}
}
我如何更改 keyDown
函数来响应 U
以及它的默认键是什么?
我看过 -
另见 - https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/EventOverview/HandlingKeyEvents/HandlingKeyEvents.html - 覆盖 keyDown: 方法
您可以使用 NSEvent
s charactersIgnoringModifiers
属性.
func keyDown(theEvent: NSEvent) {
if let keyString = theEvent.charactersIgnoringModifiers where keyString == "u" || keyString == "U" {
Swift.print("BUT...BUT…")
}
}
注意:检查 'u' 和 'U' 是有区别的。它们由 Shift 修改。因此,如果您想让两者都得到认可,请检查两者。 (如上例)
响应者链:
keyDown 函数仅在视图或 viewController 参与所谓的 Responder Chain.
要将您的 viewController 设置为响应链的一部分,请阅读以下内容 documentation。