2011-02-07 6 views
1

キーボードの代わりにUITextFieldのinputViewとして表示されるPickerがあります。ユーザーは選択した状態でダイヤルし、保存してからビューを閉じます。そのビューに戻って新しい選択肢でダイヤルすると、ピッカーは保存されたデータと同期していません。UIPickerの選択した行を以前に入力したデータと同期させる方法

ピッカーは、データソースに文字列の配列を使用しています。

たとえば、下の図を見ると、ピッカーが最初の位置にあり、空であることがわかります。しかし、私が望むのは、ピッカーがRE2にダイヤルするか、または他のオプションのいずれかがtextFieldに保存されているかどうかです。

どのように2つを同期させますか?

enter image description here

答えて

3

私はそれを考え出しました。私はpickerのdataSource配列を繰り返して一致する文字列を見つけ、selectRow:inComponent:pickerでアニメーションを使って同期させました。ここにコードがあります。私はそれを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]; 
} 
関連する問題