【发布时间】:2011-09-13 16:55:54
【问题描述】:
我的应用中目前有一个UIPickerView。有一个文本框,用户将在其中输入一个字符串,我希望将该字符串保存在 UIPickerView 中,以便他们可以返回并点击它而不是再次输入它。
我现在有一个数组,其中包含一些文本,但我想知道程序运行后如何添加它。
【问题讨论】:
标签: objective-c xcode ipad ios4
我的应用中目前有一个UIPickerView。有一个文本框,用户将在其中输入一个字符串,我希望将该字符串保存在 UIPickerView 中,以便他们可以返回并点击它而不是再次输入它。
我现在有一个数组,其中包含一些文本,但我想知道程序运行后如何添加它。
【问题讨论】:
标签: objective-c xcode ipad ios4
假设 pickerArray 是您的数组名称,其数据显示在 pickerView 中。
你要做的是:-
(void)textFieldDidEndEditing:(UITextField *)textField
{
[pickerArray addObject:textField.text];
[*yourPickerViewNmae* reloadAllCompononents];
}
希望对你有所帮助。快乐编码:)
【讨论】:
我已经完成并检查了。它工作正常。
以下是代码。
#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];
}
【讨论】:
1.使用 UITextField 的委托函数,在委托函数中添加所需数组中的文本(使用 NSMutable 数组)。
【讨论】:
UIPickerDatasource 可以显示要显示的项目数组,在您的情况下,您的数据是动态的,因为您需要输入文本,然后您希望将其输入到您的选择器控件中。
您需要有一个NSMutableArray,您可以在其中动态添加和删除对象。添加后可以调用picker的reloadAllComponents方法重新加载数据。
【讨论】: