Как синхронизировать выбранную строку UIPicker с ранее введенными данными - PullRequest
1 голос
/ 07 февраля 2011

У меня есть средство выбора, которое появляется как inputView для UITextField вместо клавиатуры. Пользователь набирает по своему выбору, сохраняет, а затем отклоняет вид. Когда вы возвращаетесь к этому представлению и набираете новый выбор, сборщик не синхронизирован с сохраненными данными.

Средство выбора использует массив строк для источника данных.

Так, например, глядя на картинку ниже, вы можете увидеть, что сборщик находится в своей первой позиции, которая является пустой. Но я хочу, чтобы сборщик набрал номер RE2 или любой другой параметр, сохраненный в textField.

Как мне синхронизировать два?

enter image description here

1 Ответ

3 голосов
/ 07 февраля 2011

Я понял это.Я перебрал массив dataSource для средства выбора, чтобы найти подходящую строку, а затем использовал selectRow: inComponent: animated в средстве выбора, чтобы синхронизировать его.Вот кодЯ вызывал его в методе делегата textField.

- (void)textFieldDidBeginEditing:(UITextField *)textField{
    UIBarButtonItem *saveButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:@selector(save)];
    self.navigationItem.rightBarButtonItem = saveButtonItem;
    [saveButtonItem release];

    //Sync The Picker
    for(NSInteger i = 0; i < [pickerData count]; i++){
        NSString *string = [pickerData objectAtIndex:i];
        if([string isEqualToString:profileField.text]){
            pickerRow = i;
            break;  //Once we have it break out of the loop
        }
    }
    [myPicker selectRow:pickerRow inComponent:0 animated:NO];
}
...