// 在视图控制器Controller中
// iPad OS键盘事件
// 重写系统方法return true
override var canBecomeFirstResponder: Bool {
return true
}
// 在控制器的viewDidAppear方法中让当前控制器成为焦点
override func viewDidAppear(_ animated: Bool) {
becomeFirstResponder()
}
// =============================
// 键盘的按下
override func pressesBegan(_ presses: Set<UIPress>, with event: UIPressesEvent?) {
for press in presses {
guard let key = press.key?.characters else {
continue
}
switch key {
case "w":
DebugLog("w")
case "a":
DebugLog("a")
case "s":
DebugLog("s")
case "d":
DebugLog("d")
default:
DebugLog("do nothing")
}
}
}
// 键盘的弹起
override func pressesEnded(_ presses: Set<UIPress>, with event: UIPressesEvent?) {
for press in presses {
guard let key = press.key?.characters else {
continue
}
switch key {
case "w":
DebugLog("w")
case "a":
DebugLog("a")
case "s":
DebugLog("s")
case "d":
DebugLog("d")
default:
DebugLog("do nothing")
}
}
}
// =============================
// 重写一些系统级快捷键的方法,例如此方法为 command + a 全选
override func selectAll(_ sender: Any?) {
DebugLog("点击了全选")
}
// =============================
// return方法为按键组合
override var keyCommands: [UIKeyCommand]? {
// 此方法设置按钮组合,会一直调用方法
let keyCommand = UIKeyCommand(input: "a", modifierFlags: .control, action: #selector(test))
// 设置此键值,按键组合只响应一次方法
keyCommand.setValue(NSNumber.init(value: false), forKey: "repeatable")
return [
keyCommand
]
}
// 测试方法
@objc func test () {
DebugLog("111哈哈哈")
}
iPad OS 键盘开发
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...