在iPhone应用程序中显示/隐藏键盘的问题

ios*_*ios 4 iphone cocoa objective-c ios4

在我的iPhone应用程序中,我遇到了一些与键盘显示/隐藏行为有关的问题.

我有三个文本字段; 单击第三个文本字段时,我想显示UIPickerView并隐藏该文本字段的键盘.我能做到的.

现在的问题是,如果第一个或第二个文本字段的键盘可见,我点击第三个文本字段,选择器变得可见,但它出现在键盘后面(它只在第一个键盘后面或第二个文本字段).

那么我应该怎么做才能使选择器本身可见而不是在那时显示任何键盘?

这是代码: -

- (void)textFieldDidBeginEditing:(UITextField*)textField {

if (textField==thirdTextField) {

    [scroll setFrame:CGRectMake(00, 48, 320, 160)];
    [scroll setContentSize:CGSizeMake(320,335)];        
    [picker setHidden:NO];
    [tool1 setFrame:CGRectMake(0,180,320,44)];
    [tool1 setHidden:NO];
    [self.picker reloadAllComponents];

    [firtTextField resignFirstResponder];
    [secondTextField resignFirstResponder];
    [thirdTextField resignFirstResponder];
    }
else {  
      [scroll setFrame:CGRectMake(00, 48, 320, 200)];
      [scroll setContentSize:CGSizeMake(320,335)];
      [tool1 setHidden:NO];
      [tool1 setFrame:CGRectMake(0,220,320,44)];
}
}
Run Code Online (Sandbox Code Playgroud)

问题就像

在此输入图像描述

Ada*_*V C 7

保留三个文本字段作为控制器的成员.

- (void)textFieldDidBeginEditing:(UITextField *)textField { 
  if(textField == 3rdTextField){
    [self.firstTextField resignFirstResponder];
    [self.secondTextField resignFirstResponder];
    [self.thirdTextField resignFirstResponder];
  }
}

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
        if(textField==3rdTextField){
            [firstTextField resignFirstResponder];
            [secondTextField resignFirstResponder];
         }
        else if(textField==secondTextField){
            [firstTextField resignFirstResponder];
            [3rdTextField resignFirstResponder];
         }
        else if(textField==firstTextField){
            [secondTextField resignFirstResponder];
            [3rdTextField resignFirstResponder];
         }

       return YES;
 }
Run Code Online (Sandbox Code Playgroud)

希望这会帮助你.