Ios textfielddidediting在swift3中使用PickerView时未触发
在Swift 3中使用选择器视图时,文本字段委托方法Ios textfielddidediting在swift3中使用PickerView时未触发,ios,swift3,delegates,uitextfield,uipickerview,Ios,Swift3,Delegates,Uitextfield,Uipickerview,在Swift 3中使用选择器视图时,文本字段委托方法textfielddidediting未触发。我怎么称呼它?没有动态调用委托的按钮 你可以在下面看到我的代码 import UIKit class ThroewViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource,UITextFieldDelegate { @IBOutlet weak var pickerText: UIText
textfielddidediting
未触发。我怎么称呼它?没有动态调用委托的按钮
你可以在下面看到我的代码
import UIKit
class ThroewViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource,UITextFieldDelegate {
@IBOutlet weak var pickerText: UITextField!
let thePicker = UIPickerView()
var dashTitle_Arr = ["One","Two","Three","Four","Five","Six"]
override func viewDidLoad() {
super.viewDidLoad()
pickerText.delegate = self
thePicker.dataSource = self
thePicker.delegate = self
pickerText.inputView = thePicker
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return dashTitle_Arr .count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return dashTitle_Arr [row] }
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
pickerText.text = dashTitle_Arr [row]
}
func textFieldDidEndEditing(_ textField: UITextField) {
addIntoArray(text: textField.text)
}
func addIntoArray(text: String?) {
guard let text = text, text.characters.count > 0 else {
return
}
dashTitle_Arr.append(text)
thePicker.reloadAllComponents()
}
}
有一个属性
选择器视图
是附件视图
。使用done
或cancel
按钮创建工具栏
,并在选择器视图的assessoriesView
中进行设置
在工具栏的按钮中
操作
写入文本字段。resignFirstResponder()
在此之后,textfielddidediting
delegate方法被激发
这对我来说很好。希望它能帮助你。谢谢在didSelectRow委托方法中,您可以强制结束对textField的编辑,只需在该方法中添加一行:pickerText.resignFirstResponder。实际上,我需要将字符串附加到需要保存在该数组中的数组对象,但它不起作用。您必须将该行放在pickerText.text=dashTitle\u Arr[row]之后这条线。还是不工作?让我知道