2017-11-30 26 views
1

3 개의 UITextView가있는 양식이 있습니다. 텍스트 필드의 탭에 UIPickerView를 표시하려고합니다. 나는 그것을 위해 코드를 아래에 작성했습니다 -UIPickerView - UITextView TouchUp에서 작동하지 않습니다.

@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 그것을 키보드의 탭 대신 피커 뷰의 개방 가져옵니다. 화면의 다른 곳을 탭하면 피커보기가 나타납니다. 그래서 내 가정 대신 EditingDidEnd 이벤트를 참조하는 EditingDidBegin 것입니다.

어떻게 확인하고 확인할 수 있습니까? 여기

답변

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] 
} 
이다