在 TextEditor 上显示 UIPickerView 值的问题 swift
Problem on displaying UIPickerView value on TextEditor swift
我在显示从 UITextField 上的 UIPickerView 中选择的值时遇到问题。我添加了所有必需的功能以使其工作,但文本字段没有更新。
这是ViewController.swift代码
@IBOutlet weak var requestDestination: UITextField!
var itemSelected : String?
var pickerData = ["Bollate" , "Baranzate" , "Garbagnate" , "Novate Milanese" , "Paderno Dugnano" , "Certosa"]
override func viewDidLoad() {
super.viewDidLoad()
let thePicker = UIPickerView()
thePicker.delegate = self
thePicker.dataSource = self
requestDestination.inputView = thePicker
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.dismissKeyboard (_:)))
self.view.addGestureRecognizer(tapGesture)
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickerData.count
}
func pickerView( _ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return pickerData[row]
}
private func pickerView( pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
itemSelected = pickerData[row]
requestDestination.text = itemSelected
}
@objc func dismissKeyboard (_ sender: UITapGestureRecognizer) {
requestDestination.resignFirstResponder()
}
我附上了一张屏幕截图,其中显示了第一个未从 PickerView 获取值的 TextEdit。
您的 didSelectRow
签名错误,所以它永远不会被调用。您错过了 _
。让 Xcode 为您完成方法,而不是尝试自己键入它们。
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
我在显示从 UITextField 上的 UIPickerView 中选择的值时遇到问题。我添加了所有必需的功能以使其工作,但文本字段没有更新。
这是ViewController.swift代码
@IBOutlet weak var requestDestination: UITextField!
var itemSelected : String?
var pickerData = ["Bollate" , "Baranzate" , "Garbagnate" , "Novate Milanese" , "Paderno Dugnano" , "Certosa"]
override func viewDidLoad() {
super.viewDidLoad()
let thePicker = UIPickerView()
thePicker.delegate = self
thePicker.dataSource = self
requestDestination.inputView = thePicker
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(self.dismissKeyboard (_:)))
self.view.addGestureRecognizer(tapGesture)
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickerData.count
}
func pickerView( _ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return pickerData[row]
}
private func pickerView( pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
itemSelected = pickerData[row]
requestDestination.text = itemSelected
}
@objc func dismissKeyboard (_ sender: UITapGestureRecognizer) {
requestDestination.resignFirstResponder()
}
我附上了一张屏幕截图,其中显示了第一个未从 PickerView 获取值的 TextEdit。
您的 didSelectRow
签名错误,所以它永远不会被调用。您错过了 _
。让 Xcode 为您完成方法,而不是尝试自己键入它们。
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {