繁体   English   中英

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

[英]How to make the textfield move up when keyboard covers it up

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

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

问题出在文本字段上。 我怎么解决这个问题?

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

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

用于将文本字段移出键盘的嵌入式通用解决方案

您可能已经尝试过一个明显的方法,但我花了一段时间才掌握的方法是从横向更改为纵向。

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

看看这里:

https://github.com/kerrygrover/KBTextView

在此处输入图像描述

创建如下所示的两种方法,第一种是将视图略微向上,第二种是将视图恢复到原来的 position

第一种方法:

    [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 上调用这些方法

将视图添加到UIScrollView 然后在点击 textField 时使用UITextFieldDelegate方法设置scrollViewcontentOffset 当用户完成输入文本时重置contentOffset

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM