iOS - UIButton 成为打开键盘的第一响应者 [英] iOS - UIButton become first responder to open keyboard
本文介绍了iOS - UIButton 成为打开键盘的第一响应者的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要在单击按钮时为 UIButton 打开键盘(不使用/用于 UITextField).我试图通过覆盖变量 canBecomeFirstResponder
来创建自定义按钮,但它不起作用.
I need to open keyboard on button click for UIButton (not using/for UITextField). I have tried to create custom button by overriding variable canBecomeFirstResponder
but it's not working.
还有其他方法吗?
注意:我想设置UIPIckerView作为UIButton在keyboard frame的输入视图.
Note: I want to set UIPIckerView as an input view of UIButton in key board frame.
这是我的代码.
class RespondingButton: UIButton {
override var canBecomeFirstResponder: Bool {
return true
}
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
private func commonInit() {
// common init
}
}
在我的视图控制器中,我连接了按钮操作.
In my view controller, I connected button action.
class TestViewController: UIViewController {
@IBAction func testBecomeFirstResponder(button: RespondingButton){
button.becomeFirstResponder() // Not working.
}
}
推荐答案
像这样添加对 UIKeyInput 的一致性.它应该工作.
Add conformance to UIKeyInput like this. It should work.
class RespondingButton: UIButton, UIKeyInput {
override var canBecomeFirstResponder: Bool {
return true
}
var hasText: Bool = true
func insertText(_ text: String) {}
func deleteBackward() {}
}
这篇关于iOS - UIButton 成为打开键盘的第一响应者的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文