2016-05-23 3 views
1

Я пишу инструкцию if для приложения ios, и я хочу изменить сборщик, основываясь на том, какое текстовое поле в настоящее время имеет фокус. вот что я до сих пор.определить, имеет ли фокус текст или нет

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int { 
    return 1 
} 

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { 

    if (condition) { 
     return array1.count 
    }else{ 
     return array2.count 
    } 
} 

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { 

    if (condition) { 
     textBox1.text = array1[row] 
    }else{ 
     textBox2.text = array2[row] 
    } 
} 

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 

    if (condition) { 
     return array1[row] 
    }else{ 
     return array2[row] 
    } 
} 

ответ

0

Вы хотите UITextField.isFirstResponder()

0

Ну, пока я не вижу какой-либо код, относящийся к текстовому полю в вашем коде, если мы предположим, что у вас есть IBOutlet для UITextField имени myTxt. Этот код, когда он прикоснулся:

myTxt.addTarget(self, action: #selector(CurrentViewController.MethodToUpdatePicker()), forControlEvents: UIControlEvents.TouchUpInside) 

и это, когда изменяется значение:

myTxt.addTarget(self, action: #selector(CurrentViewController.MethodToUpdatePicker()), forControlEvents: UIControlEvents.EditingChanged) 

Просто замените CurrentViewController.MethodToUpdatePicker() с функцией обновления сборщика.

Вот больше документов от Apple:

https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIControl_Class/#//apple_ref/occ/instm/UIControl/addTarget:action:forControlEvents:

+0

Извините, но я все еще достаточно новое для использования Swift. Я не совсем уверен, где я должен добавить эти две строки кода или какую функцию я должен заменить там, так как у меня есть 4 разных функции, контролирующих мой выбор. – icestorm0806

Смежные вопросы