#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 и сделать то же самое для второго