2012-07-29 36 views
0

我试图学习如何从一个选择器视图中选择一个对象以显示在一个TextBox中,六个小时之后我以为id最终破解了但没有。它的工作原理,但我只能让我的NSArray中的第一个项目显示在我的文本框中。Picker View只在文本框中选择NSArray中的第一个对象

Select是我的选择器,arrstatus是我的NSArray,text1是我的文本框。

使用按钮来获得自己的价值:IBAction为下:

NSInteger selectedRow = [select selectedRowInComponent:0]; 
text1.text = [arrStatus objectAtIndex:selectedRow]; 
    [text1 resignFirstResponder]; 

的代码休息:

.H

@interface pick5 : UIViewController <UIPickerViewDataSource,  UIPickerViewDelegate,UITextFieldDelegate> 

{ 

UIPickerView *select; 

NSArray *arrStatus; 


} 

.M

UIPickerView *select = [[UIPickerView alloc] initWithFrame:CGRectZero]; 
select.delegate = self; 
select.dataSource = self; 
[select setShowsSelectionIndicator:YES]; 
text1.inputView = select; 

arrStatus = [[NSArray alloc] initWithObjects:@"bs88", @"bs60898", @"Memphis",  @"California", @"Seattle",@"London",@"Paris", nil]; 
} 
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView 
{ 
//One column 
    return 1; 
} 

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component 
{ 
//set number of rows 
return arrStatus.count; 
    } 

-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component 
{ 
//set item per row 
return [arrStatus objectAtIndex:row]; 













[super viewDidLoad]; 
// Do any additional setup after loading the view. 
} 

- (void)viewDidUnload 
{ 
[self setText1:nil]; 
[self setResign:nil]; 
[self setText2:nil]; 
[super viewDidUnload]; 
// Release any retained subviews of the main view. 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation 
{ 
return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 





- (IBAction)resign:(id)sender { 


NSInteger selectedRow = [select selectedRowInComponent:0]; 
text1.text = [arrStatus objectAtIndex: selectedRow]; 
[text1 resignFirstResponder]; 
} 
@end 

IM也得到黄色警告三角s local decalration of "select" hides instance variable

+0

您是否尝试过记录selectedRow(在您的IBAction中)以查看它是否总是返回0,无论您在选取器视图中选择哪一行?您是否仍然收到本地声明错误,因为我没有看到您发布的代码中的任何内容会导致该错误? – rdelmar 2012-07-30 03:45:28

+0

现在没有本地声明错误。将尝试记录并回报。 – JSA986 2012-07-30 09:14:35

+0

排序实例变量错误导致了问题。感谢您帮助确认接受的答案 – JSA986 2012-07-30 10:04:48

回答

1

对于黄色警告,请在.m文件中更改以下代码行。

UIPickerView *select = [[UIPickerView alloc] initWithFrame:CGRectZero]; 

低于上述替换:

select = [[UIPickerView alloc] initWithFrame:CGRectZero]; 

,因为你已经宣布uipicker *选择.h文件中。

+0

您的权利,即摆脱警告。加一个给你:-) – JSA986 2012-07-30 09:12:12

+0

这也排序了另一个问题!谢谢你的建议 – JSA986 2012-07-30 10:06:39

相关问题