Автоматический выбор позиции UIPickerView

#objective-c #uipickerview

#objective-c #uipickerview

Вопрос:

Я использую один UIPickerView для двух текстовых полей. Одна из них — страна, а другая — провинция. Проблема, с которой я сталкиваюсь сейчас, заключается в том, что когда я выбираю страну и возвращаюсь в провинцию, UIPickerView помещает ту же позицию индекса, что и страна!

Вот код

Событие выбора didSelectedRow

 - (void)pickerView:(UIPickerView *)thePickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {

selectedpickerData = [NSString stringWithFormat:@"%@", [pickerData objectAtIndex:row], row];

// Editing Country
if (activePickerField == 1) {
    txtCountry.text = selectedpickerData;
}
// Editing Province
else if (activePickerField == 2) {
    txtProvince.text = selectedpickerData;
}
}
  

Q1: Как мне сохранить позицию индекса для каждого поля?

Q2: Как я могу выбрать первую позицию индекса UIPickerView, если текстовое поле пустое?

Ответ №1:

UIPickerView имеет метод

 - (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated
  

который можно использовать для выбора 0 в качестве выбранного индекса.

Затем для второго вопроса вам нужно убедиться, что [UITextField text:isEqualToString:@»»], а затем вызвать метод выше. Это может произойти, когда, например, какой-либо элемент управления отказывается от первого ответчика.

Комментарии:

1. Извините, как вы присваиваете выбранный индекс выбора полю? Я обновил код. Не могли бы вы указать на это.

2. selectedpickerData = [NSString stringWithFormat:@»%@», [pickerData objectAtIndex:строка]]; затем вы можете добавить, если выбрано текстовое поле 1, чтобы сохранить выбранный индекс в некоторой определенной переменной int и сделать то же самое для второго