UIPicker - 如何记录标准selectedRow如果用户只点击确定按钮
问题描述:
我有一个UIpicker模态窗口。一切工作正常,除了一件事。当用户单击输入文本字段时,带有UIpickerView的模式窗口按预期打开。如果所选的行是正确的,并且用户单击确定按钮,则当前代码无法注册该值。UIPicker - 如何记录标准selectedRow如果用户只点击确定按钮
// Set the default row, so if user click ok without changing it is recorded
self.picker.selectRow(0, inComponent: 0, animated: false)
是否有替代didSelectRow?我认为这是问题,因为用户不会选择一行,因为它已经被代码预选。
// Capture the picker selection
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
// This method is triggered whenever the user makes a change to the picker selection.
// The parameter named row and component represents what was selected.
selectedType = pickerData[row] as String
}
答
很好解决了它。只需添加一个测试来查看selectedType是否为零。
@IBAction func OkBtnWasPressed(_ sender: Any) {
// update text to selected value
if selectedType == nil {
typeTextField.text = pickerData[defaultRow]
} else {
typeTextField.text = selectedType
}
animateOut()
}
有时甚至最明显的是很难看到.... –