2011-06-13 30 views
1

我目前在我的應用程序中有一個UIPickerView。有一個文本框,用戶將輸入一個字符串,我希望該字符串被保存在UIPickerView,以便他們可以返回並點擊它,而不是再次輸入。如何將用戶輸入存儲在UIPickerView中?

我現在有一個數組,其中有一些文本,但我想知道如何在程序運行時添加它。

回答

2

假設pickerArray是您的數組名稱,其數據顯示在pickerView中。

你必須做的是: -

(void)textFieldDidEndEditing:(UITextField *)textField 
{ 
[pickerArray addObject:textField.text]; 
[*yourPickerViewNmae* reloadAllCompononents]; 
} 

我希望這將有助於you.Happy編碼:)

+0

謝謝!這非常有幫助! – Brandon 2011-06-13 06:49:06

0

UIPickerDatasource可以採取項目的數組來顯示,你的情況你的數據是動態的,因爲您需要在文本中輸入,然後您希望將它輸入到選取器控件中。

您需要有一個NSMutableArray,您可以在其中動態添加和刪除對象。然後添加後,您可以調用reloadAllComponents您的選擇器的方法來重新加載數據。

1

1.使用UITextField的委託函數,在委託函數內在所需的arry中添加文本(使用NSMutable數組)。

2

我已經完成了檢查。它工作正常。

以下是驗證碼。

#import "pickerViewController.h" 

@implementation pickerViewController 
@synthesize textfield,picker,pickerarray,btn; 
- (void)dealloc 
{ 
    [super dealloc]; 
    [picker release]; 
    [textfield release]; 
    [pickerarray release]; 
    [btn release]; 
} 

- (void)didReceiveMemoryWarning 
{ 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

#pragma mark - View lifecycle 


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    textfield.delegate=self; 
    picker.delegate=self; 
    picker.dataSource=self; 
    picker.showsSelectionIndicator=YES; 
    pickerarray=[[NSMutableArray alloc]init]; 

} 


-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{ 
    return 1; 
} 
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
    return [pickerarray count]; 
} 

-(void)textFieldDidEndEditing:(UITextField *)textField 
{ 
    textfield.delegate=self; 
    [pickerarray addObject:textField.text]; 

    [picker reloadAllComponents]; 

    NSLog(@"%@",pickerarray); 
} 

-(NSString*)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 


    return [pickerarray objectAtIndex:row]; 

} 
-(IBAction)killkeyBoard:(id)sender 
{ 
    [textfield resignFirstResponder]; 
} 
相關問題