iOS-UIButton成为打开键盘的第一反应器
我需要打开键盘上的按钮点击UIButton(不使用/for UITextField)。我试图通过重写变量canBecomeFirstResponder来创建自定义按钮,但它不起作用 还有其他办法吗 注意:我想将UIPIckerView设置为键盘框架中UIButton的输入视图 这是我的密码iOS-UIButton成为打开键盘的第一反应器,ios,swift,uibutton,becomefirstresponder,Ios,Swift,Uibutton,Becomefirstresponder,我需要打开键盘上的按钮点击UIButton(不使用/for UITextField)。我试图通过重写变量canBecomeFirstResponder来创建自定义按钮,但它不起作用 还有其他办法吗 注意:我想将UIPIckerView设置为键盘框架中UIButton的输入视图 这是我的密码 class RespondingButton: UIButton { override var canBecomeFirstResponder: Bool { return tru
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
}
}
在我的视图控制器中,我连接了按钮操作
class TestViewController: UIViewController {
@IBAction func testBecomeFirstResponder(button: RespondingButton){
button.becomeFirstResponder() // Not working.
}
}
像这样向UIKeyInput添加一致性。它应该会起作用
class RespondingButton: UIButton, UIKeyInput {
override var canBecomeFirstResponder: Bool {
return true
}
var hasText: Bool = true
func insertText(_ text: String) {}
func deleteBackward() {}
}
像这样向UIKeyInput添加一致性。它应该会起作用
class RespondingButton: UIButton, UIKeyInput {
override var canBecomeFirstResponder: Bool {
return true
}
var hasText: Bool = true
func insertText(_ text: String) {}
func deleteBackward() {}
}
这就是我要做的
textField
1x1px,假设它是myTextField
myTextField.becomeFirstResponder()
李>
创建视图:
let pvBackground: UIView = {
let v = UIView(frame: CGRect(x: 0, y: 0, width: 10, height: 10))
v.backgroundColor = .white
v.translatesAutoresizingMaskIntoConstraints = false
return v
}()
在viewDidLoad
中:
pvBackground.addSubview(yourPickerView)//add the picker into the pvBackground
myTextField.inputView = pvBackground
我将
pickerView
添加到另一个视图中,以便能够对其进行更多自定义。下面是我要做的
textField
1x1px,假设它是myTextField
myTextField.becomeFirstResponder()
李>
创建视图:
let pvBackground: UIView = {
let v = UIView(frame: CGRect(x: 0, y: 0, width: 10, height: 10))
v.backgroundColor = .white
v.translatesAutoresizingMaskIntoConstraints = false
return v
}()
在viewDidLoad
中:
pvBackground.addSubview(yourPickerView)//add the picker into the pvBackground
myTextField.inputView = pvBackground
我在另一个视图中添加了
pickerView
,以便能够对其进行更多自定义。您想用键盘更改UIPicker显示的数据吗?@Phyber您可能知道,我们可以将UIPickerView设置为UIExtField的inputView,类似的方式,我需要使用UIButton来完成,可能这是weired,但隐藏文本字段并将其设置为first responder(第一响应者)又有什么意义呢?@Retterdesdialogs,我有这个选择,但这将是我使其工作的最后一个选择。你想用键盘更改UIPicker显示的数据吗?@Phyber你可能知道,我们可以将UIPickerView设置为UIExtField的inputView,就像这样,我需要使用UIButton来完成它可能的重复,也许这很奇怪,但隐藏的textfield是什么,并将其设置为first responder-如果没有其他东西对您有效。@RetterDeDialogs,我有这个选择,但这将是我最后一个让它工作的选择。部分意味着?部分意味着?