如何在键盘覆盖时使文本字段向上移动

时间:2011-05-05 10:03:44

标签: iphone objective-c textview textfield

我有一个应用程序,其中有2个文本字段和textview。当我点击第一个文本字段时,我的键盘弹出,他们的没有问题,但当我输入第二个文本字段时,我的键盘弹出并覆盖文本字段。

我希望当我点击第二个文本字段时,文本字段应向上移动一点,以便我可以输入并且我有一个textview。但我已经为textview编写了代码,这样当我输入textview时它会自动移动。

问题出在textfield上。我该如何解决这个问题?

6 个答案:

答案 0 :(得分:3)

考虑使用UITableViewController。否则实现UITextFieldDelegate并将您的UIView移动到- (void)textFieldDidBeginEditing:(UITextField *)textField方法中的所需位置。

答案 1 :(得分:1)

查看下面的链接 - 解决方案由Micheal Tyson撰写。它解决了UITableView和UIScrollView的问题,可以轻松更改,并且可以作为插入组件使用。我正在使用它并且效果很好。

A drop-in universal solution for moving text fields out of the way of the keyboard

答案 2 :(得分:0)

创建两个方法,如下面给出的,第一个用于将视图略微向上,第二个用于将视图恢复到原始位置

第一种方法:

    [UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.3];

self.view.transform = CGAffineTransformTranslate(self.view.transform, 0, -175);
[UIView commitAnimations];

第二种方法:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:.3];

self.view.transform = CGAffineTransformTranslate(self.view.transform, 0, 175);
[UIView commitAnimations];

[self.destext resignFirstResponder];

在textfieldEditingDidbegin和DidEndonExit

上调用这些方法

答案 3 :(得分:0)

将视图添加到UIScrollView。然后,当点按textField时,使用UITextFieldDelegate方法设置contentOffset的{​​{1}}。用户输入完文本后重置scrollView

答案 4 :(得分:0)

你可能已经尝试过的一个显而易见的问题,但是我需要一段时间才能抓住它,是从风景变为肖像。

答案 5 :(得分:0)

我创建了一个UIView的简单子类,其中包含UITextView和一个发送按钮,当键盘显示时向上移动,当键盘隐藏时向下移动。除此之外,UITextView还会根据其中的文本大小进行调整。

看看这里:

https://github.com/kerrygrover/KBTextView

enter image description here