【发布时间】:2020-01-07 16:43:48
【问题描述】:
我正在制作一个简单的 iOS 项目,其中有一个 UITextField 并使用 XCode 模拟器对其进行测试。我还在我的文本字段中添加了一个inputAccessoryView(一个简单的UIToolBar,带有“完成”按钮)。
当我在模拟器的硬件首选项中打开Connect Hardware Keyboard 选项并单击文本字段时,没有出现键盘,但出现了工具栏(看起来很奇怪 - 工具栏没有键盘)。在这种情况下,键盘仅在我单击 Toggle Software Keyboard 时出现(默认值:⌘ + K)。而当我关闭 Connect Hardware Keyboard 选项时,程序正常工作,键盘随其工具栏出现和消失。我只想在这两种情况下都有正确的行为(例如,不显示带有硬件键盘的工具栏)。
检测当前使用的键盘(软件还是硬件)最简单的方法是什么?
代码如下:
import UIKit
class ViewController: UIViewController {
@IBOutlet var textField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
let toolBar = UIToolbar(frame: CGRect(origin: .zero, size: .init(width: view.frame.size.width, height: 30)))
let doneButton = UIBarButtonItem(title: "Done", style: .done
, target: self, action: #selector(doneButtonAction))
toolBar.setItems([doneButton], animated: false)
toolBar.sizeToFit()
textField.inputAccessoryView = toolBar
}
@objc func doneButtonAction() {
self.view.endEditing(true)
}
}
【问题讨论】:
标签: ios swift uitextfield