我知道这个话题已经有很多了。我从另一个问题得到了下面的代码,但我不知道如何设置它使用。有人可以一步一步详细介绍如何在键盘出现时实际设置在键盘上方移动文本字段的过程,然后在编辑完成时将其移回。
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
[self animateTextField: textField up: YES];
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
[self animateTextField: textField up: NO];
}
- (void) animateTextField: (UITextField*) textField up: (BOOL) up
{
const int movementDistance = 80; // tweak as needed
const float movementDuration = 0.3f; // tweak as needed
int movement = (up ? -movementDistance : movementDistance);
[UIView beginAnimations: @"anim" context: nil];
[UIView setAnimationBeginsFromCurrentState: YES];
[UIView setAnimationDuration: movementDuration];
self.view.frame = CGRectOffset(self.view.frame, 0, movement);
[UIView commitAnimations];
}
答案 0 :(得分:1)
textFieldDidBeginEditing:
或textFieldDidEndEditing:
是否会被调用?
如果没有,您可能无法正确设置文本字段的委托。
当您声明文本字段时(或者,如果您在viewDidLoad中使用IB),请添加以下内容:
yourTextField.delegate = self;
答案 1 :(得分:0)
我强烈建议使用UITableViewController并将UITextField放入表中。这样,系统就可以解决键盘隐藏问题。