代码之家  ›  专栏  ›  技术社区  ›  Slee

只在ipad上点击某个文本字段时显示键盘?

  •  0
  • Slee  · 技术社区  · 14 年前

    当显示键盘时,我需要将视图向上移动,但仅限于视图底部的1个文本字段,我认为这与检查isFirstResponder一样简单,但没有这样的运气-下面是我尝试的:

    if ([notes isFirstResponder]) {
    
        [UIView beginAnimations:@"moveupcontrols" context:nil];
        [UIView setAnimationDuration:.25];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        self.view.frame=CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y-kOrderFormKeyboardHeight, self.view.frame.size.width,  self.view.frame.size.height)  ;
        [UIView commitAnimations];
    
        keyboardIsShown = YES;
    }
    

    3 回复  |  直到 14 年前
        1
  •  2
  •   Ben Gottlieb    14 年前

    为什么不使用UITextField-textFieldShouldBeginEditing:delegate方法呢?这将在编辑开始前调用,您可以在那里执行动画。

        2
  •  0
  •   Swapnil Luktuke    14 年前

    为什么不给文本字段设置一个标记,并在其中添加相同的代码呢 textFieldDidBeginEditing 委托方法?您必须检查标记值,而不是isFirstResponder。

        3
  •  0
  •   vodkhang    14 年前

    下面是一些代码供您执行:

    - (void)viewDidLoad {
      textField1.tag = 1;
      textField2.tag = 2;
    
      textField1.delegate = self;
      textField2.delegate = self;
    }
    
    - (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
      if (textField.tag == 1) {
        // then animation here
      }
    }
    

    别忘了修改UITextFieldDelegate协议。

    More about tag here UITextFieldDelegate here