【发布时间】:2015-02-04 10:22:38
【问题描述】:
我想为我的应用添加硬件键盘支持,以便用户可以随时通过按下键盘上的某个键来触发要调用的函数。我找到了this article,并且能够让它在 Objective-C 中运行良好。我已将其转换为 Swift,但由于某种原因,在我按下“c”后没有调用 keyPressed 方法。我确认只要用户按下键盘上的任何键,就会调用keyCommands。我正在使用 iOS 模拟器和 Mac 的键盘进行测试。
我的 Swift 代码有什么问题?
override func canBecomeFirstResponder() -> Bool {
return true
}
func keyCommands() -> [AnyObject]? {
var keyCommands = []
struct Static {
static var onceToken : dispatch_once_t = 0
}
dispatch_once(&Static.onceToken) {
let command = UIKeyCommand(input: "c", modifierFlags: nil, action: "keyPressed:")
keyCommands = [command]
}
return keyCommands
}
func keyPressed(command: UIKeyCommand) {
println("user pressed c") //never gets called
}
【问题讨论】:
标签: ios swift keyboard uikeycommand