0

我有一个应用程序,其中有文本字段和一个文本视图,但是当我拿到键盘时,它隐藏了较低的文本字段。我该怎么做。

我努力了:

米:

- (void)textFieldDidBeginEditing:(UITextField *)sender {
    CGSize content = _scrollView.contentSize;
    _scrollView.contentSize = CGSizeMake(content.width, content.height + 200);
    svos = _scrollView.contentOffset;
    CGPoint pt;
    CGRect rc = [sender bounds];
    rc = [sender convertRect:rc toView:_scrollView];
    pt = rc.origin;
    pt.x = 0;
    pt.y -= 200;
    [_scrollView setContentOffset:pt animated:YES];
}

- (IBAction)textFieldShouldReturn:(UITextField *)textField {
    CGSize content = _scrollView.contentSize;
    _scrollView.contentSize = CGSizeMake(content.width, content.height - 200);
    [_scrollView setContentOffset:svos animated:YES];
    [textField resignFirstResponder];
}

。H:

CGPoint svos;

尽管底部的文本字段仍然隐藏,但它确实会滚动到可见的字段

4

3 回答 3

0

在 iOS 中将文本字段移出键盘的插入式通用解决方案

https://github.com/michaeltyson/TPKeyboardAvoiding

它对我来说很完美。

只需在项目中复制所需的类(TPKeyboardAvoidingScrollView 或 TPKeyboardAvoidingTableView),在界面生成器文件中,您必须将 UIScrollView 类更改为 TPKeyboardAvoidingScrollView 或 UITableView 更改为 TPKeyboardAvoidingTableView,剩下的事情将由这些类处理。

在此处输入图像描述

于 2013-07-13T19:47:25.600 回答
0

您是否看过有关管理键盘的文档?(苹果文档)有一个我认为你正在研究的例子。希望能帮助到你。

于 2013-07-16T11:34:09.597 回答
0

您已经获得了发送者文本字段的原点,但仅向上移动了 60,因此,较低的文本字段被键盘覆盖。您需要知道键盘的高度并计算向上移动的距离。看看这个。它有很多答案,所以我不会再解释了。

要滚动到滚动视图中的底部文本字段,请在 textFieldDidBeginEditing 中添加这些行:

CGSize content = _scrollview.contentSize;
_scrollview.contentSize = CGSizeMake(content.width, content.height + 200);

这将以编程方式扩展您的 contentSize,以便您可以滚动到最后一个文本字段并允许键盘覆盖空白区域。

在 textFieldDidEndEditing 或 textFieldShouldReturn 中,根据您的情况,添加以下内容:

CGSize content = _scrollview.contentSize;
_scrollview.contentSize = CGSizeMake(content.width, content.height - 200);

我以任意 200 为例。你需要弄清楚你想要多少。

于 2013-07-13T14:44:43.570 回答