#iphone #uipickerview
#iPhone #uipickerview
Вопрос:
Я установил внешний вид вида выбора в текстовом поле, запустил функцию редактирования и скрыл клавиатуру. Теперь проблема в том, что при появлении вида выбора отображается индикатор выбора по первому значению, но это значение не отображается в текстовом поле. Я хочу, чтобы при нажатии пользователем на текстовый файл появлялся вид выбора, а значение из средства выбора отображалось в текстовом поле, где размещался индикатор выбора. Как это сделать? Предположим, у меня есть четыре значения в том же порядке 0,1,2,3. Теперь, когда появляется вид выбора, индикатор выбора находится на значении «0». Но чтобы получить это значение, мы должны прокрутить окно выбора и вернуться к «0», после чего оно отобразит это значение в текстовом поле. Почему это происходит? И как получить значение автоматически?
Заранее спасибо…
Ответ №1:
Ну, между вашим представлением выбора и текстовым полем нет никакой связи — вы должны сделать это самостоятельно.
Следует учитывать две вещи:
1) Ваше текстовое поле уже содержит значение, скажем, «1». Когда вы открываете средство выбора, вы можете установить для него это значение уже с помощью функции
[yourPicker selectRow:1 inComponent:0 animated:false]
предполагая, что ваш массив данных для средства выбора [0, 1, 2, 3]. В вашем случае, чтобы текстовое поле содержало значение 0, просто вызовите
[textField setText:@"0"]
2) Когда вы закончите с выбором, он вызывает функцию делегирования
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
Итак, вы должны заставить свой view реализовать протокол UIPickerViewDelegate, реализовать в нем вышеупомянутую функцию делегирования и установить представление в качестве делегата представления выбора. В функции делегирования вы можете получить значение, выбранное пользователем (используя строку для доступа к значениям вашего массива данных), и установить это значение в своем текстовом поле.