2

有没有办法检测何时从连接到 iOS 设备的外部键盘按下“返回”键,而不是点击屏幕键盘的“返回”键?

公共 API 可以做到这一点吗?

我的班级正在担任UITextFieldDelegate,我接到以下电话:

- (BOOL)textFieldShouldReturn:(UITextField *)textField

但是当它被调用时,textField.text返回文本字段中存在的字符,而不是发出的回车符。

-textField:shouldChangeCharactersInRange:replacementString不会通过物理或虚拟键盘的“Return”键来调用。

4

1 回答 1

1

在 iOS 7+ 中,您可以使用UIKeyCommand通过硬件键盘来区分 Return。

extension ViewController {
    
    @objc private func keyCommand_return() {
        /// handle return
    }
    
    
    override var keyCommands: [UIKeyCommand]? {
        return [
            UIKeyCommand(input: "\r", modifierFlags: [], action: #selector(keyCommand_return)),
        ]
    }
}
于 2020-07-07T22:16:24.503 回答