【问题标题】:UIPickerView - Not working on UITextView TouchUpUIPickerView - 不适用于 UITextView TouchUp
【发布时间】: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


    【解决方案1】:

    这里是例子

    let myPickerProject = [ "Project 1", "Project 2", "Project 3", "Project 4", "Project 5", "Project 6"] // to feed row
    pickerProject.delegate = self
    let pickerProject = UIPickerView()
    let txtFiled = UITextField.init(frame: <#T##CGRect#>)
    txtFiled.inputView = pickerProject
    func numberOfComponents(in pickerView: UIPickerView) -> Int {
         return 1
    } 
    func pickerView( _ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
         return myPickerProject.count
    }
    
    func pickerView( _ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return myPickerProject[row]
    }
    
    func pickerView( _ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        let selectedvalue = myPickerProject[row]
    }
    

    【讨论】:

      猜你喜欢
      • 2014-04-14
      • 2014-06-07
      • 2018-03-30
      • 1970-01-01
      • 2018-06-03
      • 1970-01-01
      • 2020-09-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多