textFieldDidEndEditing 在 swift 3 中使用 pickerview 时不触发
textFieldDidEndEditing not firing when pickerviiew used in swift3
在 Swift 中使用选取器视图时,文本字段委托方法 textFieldDidEndEditing
未触发 3. 如何调用它?没有动态调用委托的按钮。
你可以在下面看到我的代码。
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()
}
}
有一个属性的picker-view
是accessoriesView
。使用 done
或 cancel
按钮创建一个 tool bar
并在选择器视图的 assessoriesView
.
中设置它
在工具栏中 button
action
写入 textfield.resignFirstResponder()
之后 textFieldDidEndEditing
委托方法被触发
对我来说效果很好。希望它能帮助你。谢谢
在 Swift 中使用选取器视图时,文本字段委托方法 textFieldDidEndEditing
未触发 3. 如何调用它?没有动态调用委托的按钮。
你可以在下面看到我的代码。
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()
}
}
有一个属性的picker-view
是accessoriesView
。使用 done
或 cancel
按钮创建一个 tool bar
并在选择器视图的 assessoriesView
.
在工具栏中 button
action
写入 textfield.resignFirstResponder()
之后 textFieldDidEndEditing
委托方法被触发
对我来说效果很好。希望它能帮助你。谢谢