Ios4 文本字段编辑上UIPickerView的多个源
到目前为止,我得到的是Ios4 文本字段编辑上UIPickerView的多个源,ios4,uipickerview,uipicker,Ios4,Uipickerview,Uipicker,到目前为止,我得到的是 @synthesize txtCountry,txtState; int flgTextField; - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { [pickerView reloadAllComponents]; // Make a new view, or do what you want here if(textField == txtCountry || t
@synthesize txtCountry,txtState;
int flgTextField;
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
[pickerView reloadAllComponents];
// Make a new view, or do what you want here
if(textField == txtCountry || textField == txtState){
flgTextField = textField.tag;
[UIView beginAnimations:nil context:NULL];
//[pvState setFrame:CGRectMake(0.0f, 199.0f, 320.0f, 216.0f)];
[UIView commitAnimations];
return NO;
}
else {
return YES;
}
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {
if(flgTextField==1){
return [arryCountry count];
}
else {
return [arryState count];
}
}
- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component {
if(flgTextField==1){
return [arryCountry objectAtIndex:row];
}
else{
return [arryState objectAtIndex:row];
}
}
- (void)viewDidLoad {
arryCountry = [[NSMutableArray alloc] init];
arryState = [[NSMutableArray alloc] init];
[arryCountry addObject:@" 100 "];
[arryCountry addObject:@" 200 "];
[arryCountry addObject:@" 400 "];
[arryCountry addObject:@" 600 "];
[arryCountry addObject:@" 1000 "];
[arryState addObject:@" a "];
[arryState addObject:@" b "];
[arryState addObject:@" c "];
[arryState addObject:@" d "];
[arryState addObject:@" e "];
[super viewDidLoad];
}
在我的电脑里
及
@接口联系人:UIViewController{
IBOUTLE UITextField*txtCountry;
IBOUTLE UITextField*txtState;
NSMutableArray*arryCountry;
NSMUTABLEARRY*arryState;
UIPickerView*pickerView;
}
@不动产(非原子,保留)IBOutlet UITextField*txtCountry;
@属性(非原子,保留)IBOutlet UITextField*txtState;
在我的.h文件中
现在文本字段是不可编辑的,我需要一些帮助或指导,或者任何关于如何将UIPicker连接到多个源的教程,这些源可以在文本字段编辑时更改,因此我看没有人关心:)
我现在有3个文本字段,每当我触摸textField1或textField2时,选择器都会更改值,并且没有键盘。当我触摸textField3时,键盘出现,选择器隐藏。现在,如果我通过单击返回关闭键盘,然后单击textField1选择器再次出现,但如果我不通过单击按钮关闭键盘,选择器将停留在选择器上方。我需要的是当键盘是第一响应者(我在屏幕上看到它)时,如果我点击文本字段1,只看到选择器,就隐藏它
int variabla;
-(void)textFieldDidBeginEditing:(UITextField *)textField{
[pickerView setHidden:YES];
if (textField1.editing == YES) {
[textField1 resignFirstResponder];
[pickerView setHidden:NO];
variabla = 1;
}else if (textField2.editing == YES) {
[textField2 resignFirstResponder];
[pickerView setHidden:NO];
variabla = 2;
}
NSLog(@"variabla %d",variabla);
[pickerView reloadAllComponents];
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
{
if (variabla == 1) {
return [pickerArray1 count];
}else if (variabla == 2) {
return [pickerArray2 count];
}else {
return 0;
}
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
{
if (variabla == 1) {
return [pickerArray1 objectAtIndex:row];
}else if (variabla == 2) {
return [pickerArray2 objectAtIndex:row];
}else {
return 0;
}
}
- (void)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
}
- (void)viewDidLoad {
[super viewDidLoad];
[pickerView setHidden:YES];
pickerArray1 = [[NSMutableArray alloc] initWithObjects:@"0", @"1", @"2", nil];
pickerArray2 = [[NSMutableArray alloc] initWithObjects:@"3", @"4", @"5", nil];
}
在textFieldShouldBeginEditing中,为什么对国家/地区和州字段返回NO?很抱歉,我没有看到您的回答,我已经修复了代码,下面是工作版本,我只需要一件事,当我按textField1时隐藏键盘:)
int variabla;
-(void)textFieldDidBeginEditing:(UITextField *)textField{
[pickerView setHidden:YES];
if (textField1.editing == YES) {
[textField1 resignFirstResponder];
[pickerView setHidden:NO];
variabla = 1;
}else if (textField2.editing == YES) {
[textField2 resignFirstResponder];
[pickerView setHidden:NO];
variabla = 2;
}
NSLog(@"variabla %d",variabla);
[pickerView reloadAllComponents];
}
- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView;
{
return 1;
}
- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;
{
if (variabla == 1) {
return [pickerArray1 count];
}else if (variabla == 2) {
return [pickerArray2 count];
}else {
return 0;
}
}
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component;
{
if (variabla == 1) {
return [pickerArray1 objectAtIndex:row];
}else if (variabla == 2) {
return [pickerArray2 objectAtIndex:row];
}else {
return 0;
}
}
- (void)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
}
- (void)viewDidLoad {
[super viewDidLoad];
[pickerView setHidden:YES];
pickerArray1 = [[NSMutableArray alloc] initWithObjects:@"0", @"1", @"2", nil];
pickerArray2 = [[NSMutableArray alloc] initWithObjects:@"3", @"4", @"5", nil];
}