Как изначально выбрать значение при появлении вида выбора?

#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, реализовать в нем вышеупомянутую функцию делегирования и установить представление в качестве делегата представления выбора. В функции делегирования вы можете получить значение, выбранное пользователем (используя строку для доступа к значениям вашего массива данных), и установить это значение в своем текстовом поле.