如何使用完成按钮确认我在 UIPickerView 中的选择?
How do I confirm my selection in UIPickerView with a done button?
对于这个问题,我深表歉意,其他问题要么已经过时,要么与在 UIPickerView 中嵌入按钮有关
我有一个显示 3 个字符串的 UIPickerView;一旦我的用户 select 编辑了他希望 select 的字符串,我希望他点击完成按钮(它没有嵌入 UIPickerView 本身;而是单独出现)。
let strings = ["1", "2", "3"]
fileprivate let pickerView: UIPickerView = {
let pv = UIPickerView()
pv.translatesAutoresizingMaskIntoConstraints = false
return pv
}()
override func viewDidLoad() {
pickerView.delegate = self
pickerView.dataSource = self
}
let button: UIButton = {
let btn = UIButton()
btn.translatesAutoresizingMaskIntoConstraints = false
btn.setTitle("Done", for: .normal)
btn.addTarget(self, action: #selector(donePressed), for: .touchUpInside)
return btn
}()
@objc func donePressed(_ sender: UIButton) {
print("Done pressed")
//Pressing this should print whichever row is currently selected
}
extension ViewController: UIPickerViewDataSource {
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return strings.count
}
}
extension ViewController: UIPickerViewDelegate {
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
strings[row]
}
首先在文档中查找有用的内容。啊,这里是:
https://developer.apple.com/documentation/uikit/uipickerview/1614369-selectedrow
所以。让您的按钮调用选择器视图的 selectedRow(inComponent:)
。只有一个组件,因此您将通过 0
。 return 值是 index(所选行)。如果您想知道实际的 值 (字符串),请将其用作 strings
的索引。
@objc func donePressed(_ sender: UIButton) {
print("Done pressed")
print(strings[pickerView!.selectedRow(inComponent: 0)])
}
对于这个问题,我深表歉意,其他问题要么已经过时,要么与在 UIPickerView 中嵌入按钮有关
我有一个显示 3 个字符串的 UIPickerView;一旦我的用户 select 编辑了他希望 select 的字符串,我希望他点击完成按钮(它没有嵌入 UIPickerView 本身;而是单独出现)。
let strings = ["1", "2", "3"]
fileprivate let pickerView: UIPickerView = {
let pv = UIPickerView()
pv.translatesAutoresizingMaskIntoConstraints = false
return pv
}()
override func viewDidLoad() {
pickerView.delegate = self
pickerView.dataSource = self
}
let button: UIButton = {
let btn = UIButton()
btn.translatesAutoresizingMaskIntoConstraints = false
btn.setTitle("Done", for: .normal)
btn.addTarget(self, action: #selector(donePressed), for: .touchUpInside)
return btn
}()
@objc func donePressed(_ sender: UIButton) {
print("Done pressed")
//Pressing this should print whichever row is currently selected
}
extension ViewController: UIPickerViewDataSource {
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return strings.count
}
}
extension ViewController: UIPickerViewDelegate {
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
strings[row]
}
首先在文档中查找有用的内容。啊,这里是:
https://developer.apple.com/documentation/uikit/uipickerview/1614369-selectedrow
所以。让您的按钮调用选择器视图的 selectedRow(inComponent:)
。只有一个组件,因此您将通过 0
。 return 值是 index(所选行)。如果您想知道实际的 值 (字符串),请将其用作 strings
的索引。
@objc func donePressed(_ sender: UIButton) {
print("Done pressed")
print(strings[pickerView!.selectedRow(inComponent: 0)])
}