我想弄清楚如何创建一个全局函数,为我选择的键盘添加一个完成按钮。
我可以添加一个完成按钮,但我目前将代码复制到每个 View Controller 。我想向 UITextField 添加一个函数以在键盘上显示完成按钮。 堆栈溢出时常见的当前代码。
在 viewDidLoad 中找到的代码:
let toolbar = UIToolbar()
toolbar.sizeToFit()
let doneBotton = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.done, target: self, action: #selector(self.doneClicked))
toolbar.setItems([doneBotton], animated: false)
@objc 在 viewdidload 之外发现:
@objc func doneClicked() {
view.endEditing(true)
}
最佳答案
您可以像下面这样简单地创建 UITextField 的扩展:-
extension UITextField {
func addDoneButton() {
let toolbar = UIToolbar()
toolbar.sizeToFit()
let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneClicked))
toolbar.setItems([doneButton], animated: false)
self.inputAccessoryView = toolbar
}
@objc func doneClicked() {
self.endEditing(true)
}
}
然后像下面这样调用它:-
class DoneKeyboardViewController: UIViewController {
@IBOutlet weak var txtField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
txtField.addDoneButton()
}
}
关于ios - 使用全局函数添加键盘完成按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55054907/