我需要在显示键盘时向上移动视图但仅在我视图底部的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标志之前触发了通知。关于解决这个问题的想法?
答案 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协议。
的更多信息