2010-08-23 105 views
0

我需要在显示键盘时将视图向上移动,但仅对于视图底部的1个文本框,我认为这将与检查isFirstResponder一样简单,但没有这样的运气 - 这是我正在尝试的:只有在ipad上点击某个文本字段时才显示键盘?

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标志之前触发。关于这方面的解决方法的想法?

回答

2

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

+0

很好,谢谢 – Slee 2010-08-24 14:48:51

0

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

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

不要忘记comform到UITextFieldDelegate协议。

More about tag here。更多关于UITextFieldDelegate here

相关问题