【发布时间】:2017-11-30 02:53:05
【问题描述】:
我有一个包含三个 UITextView 的表单。我想在点击文本字段时显示 UIPickerView。我已经为它写了下面的代码-
@IBAction func selectServiceBook(_ sender: UITextField) {
let message = "\n\n\n\n\n\n"
let alert = UIAlertController(title: "Select Service Book", message: message, preferredStyle: UIAlertControllerStyle.alert)
alert.isModalInPopover = true
let pickerFrame = UIPickerView(frame: CGRect(x: 20, y: 20, width: 200, height: 140)) // CGRectMake(left, top, width, height) - left and top are like margins
pickerFrame.tag = 666
//set the pickers datasource and delegate
pickerFrame.delegate = self
//Add the picker to the alert controller
alert.view.addSubview(pickerFrame)
let okAction = UIAlertAction(title: "OK", style: .default, handler: {
(alert: UIAlertAction!) -> Void in
self.ServiceBook.text = self.selectedServiceBook
})
alert.addAction(okAction)
self.present(alert, animated: true, completion: {
self.ServiceBook.text = self.selectedServiceBook
})
}
这为两个字段完成了工作,但在点击 ServiceBook 时,键盘会打开而不是选择器视图。当我点击屏幕中的其他任何地方时,选择器视图会弹出。所以我的假设不是 EditingDidBegin 它指的是 EditingDidEnd 事件。
如何检查和确认?
【问题讨论】:
标签: ios swift uitextview uipickerview uialertcontroller