gpt4 book ai didi

iOS Swift 中断键盘事件

转载 作者:搜寻专家 更新时间:2023-10-31 08:26:27 28 4
gpt4 key购买 nike

我无法拦截键盘事件。我已将我的 iOS 与 SteelSeries Free(游戏 handle Controller )连接,当连接到 iOS 时,它将被检测为蓝牙键盘。这是在我打开 Notes 时测试的,按下游戏 handle 上的任何按钮都会写一个字母。

我需要拦截此按钮按下并运行我自己的功能,但遗憾的是我无法这样做。

我一直在尝试使用 GCController,但显然它没有被检测为游戏 Controller 对象。当我打印计数时,它显示为 0。我的代码如下。

let gameControllers = GCController.controllers() as! [GCController]
println("configureConnectedGameControllers count: \(gameControllers.count)")

所以我假设这是因为游戏 handle 被检测为蓝牙键盘,这就是为什么它没有被检测为游戏 Controller 。所以我尝试改用 UIKeyCommand。下面是我的代码:

override func viewDidLoad() {
super.viewDidLoad()

var keys = [UIKeyCommand]()
for digit in "abcdefghijklmnopqrstuvwxyz"
{
keys.append(UIKeyCommand(input: String(digit), modifierFlags: .Command, action: Selector("keyPressed:")))
keys.append(UIKeyCommand(input: String(digit), modifierFlags: .Control, action: Selector("keyPressed:")))
keys.append(UIKeyCommand(input: String(digit), modifierFlags: nil, action: "pressKey"))
}
}

override func canBecomeFirstResponder() -> Bool {
return true
}

func keyPressed(command: UIKeyCommand) {
println("another key is pressed") //never gets called
}

func pressKey() {
println("a key is pressed")
}

但即使使用上述实现,当我按下游戏 handle 上的按钮时,控制台中也不会打印任何内容。

这让我很困惑。因此,如果您对此有任何答案,请帮助我。提前致谢!

最佳答案

我终于设法让它工作了。如果有人需要,下面是代码。

var keys = [UIKeyCommand]()

override func viewDidLoad() {
super.viewDidLoad()
//configureGameControllers()

for digit in "abcdefghijklmnopqrstuvwxyz"
{
keys.append(UIKeyCommand(input: String(digit), modifierFlags: nil, action: Selector("keyPressed:")))
}
}

override func canBecomeFirstResponder() -> Bool {
return true
}

override var keyCommands: [AnyObject]? {
get {
return keys
}
}


func keyPressed(command: UIKeyCommand) {
println("user pressed \(command.input)")
}

关于iOS Swift 中断键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32045170/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com