获取文本字段输入并将其插入到Swift 5.1中的选择器中,可以通过以下步骤实现:
以下是一个示例代码,演示了如何实现上述步骤:
import UIKit
class ViewController: UIViewController, UITextFieldDelegate, UIPickerViewDataSource, UIPickerViewDelegate {
var textField: UITextField!
var pickerView: UIPickerView!
var data: [String] = ["Option 1", "Option 2", "Option 3"]
override func viewDidLoad() {
super.viewDidLoad()
// 创建文本字段
textField = UITextField(frame: CGRect(x: 50, y: 100, width: 200, height: 30))
textField.borderStyle = .roundedRect
textField.delegate = self
self.view.addSubview(textField)
// 创建选择器
pickerView = UIPickerView(frame: CGRect(x: 50, y: 150, width: 200, height: 200))
pickerView.dataSource = self
pickerView.delegate = self
self.view.addSubview(pickerView)
}
// 监听文本字段的输入变化
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let newText = (textField.text as NSString?)?.replacingCharacters(in: range, with: string)
// 将输入值作为选择器的数据源
data.append(newText ?? "")
pickerView.reloadAllComponents()
return true
}
// 选择器的列数
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
// 选择器的行数
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return data.count
}
// 选择器的每行显示的内容
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return data[row]
}
}
这段代码创建了一个包含文本字段和选择器的视图控制器。用户在文本字段中输入的值会实时添加到选择器的数据源中,并在选择器中显示出来。
领取专属 10元无门槛券
手把手带您无忧上云