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

时间:2010-08-23 13:20:11

标签: iphone objective-c ipad

我需要在显示键盘时向上移动视图但仅在我视图底部的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;
}

我假设在我的文本字段中设置了FirstResponder标志之前触发了通知。关于解决这个问题的想法?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

为什么不为该文本字段设置标记并将相同的代码添加到textFieldDidBeginEditing委托方法?您必须检查标记值而不是isFirstResponder。

答案 2 :(得分:0)

以下是一些代码:

- (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

的更多信息