UITextField在屏幕旋转时如何改变光标位置

7

即使我更改方向,与iOS6配合良好 Working fine with iOS6

如果我不改变方向,与iOS7兼容良好 Working fine with iOS7

iOS7更改方向时显示错误。 Error in display when orientation gets change iOS7

我正在以编程方式创建UITextField,在<iOS7中工作正常,

在iOS7及更高版本中,当我更改方向时,UITextField光标位置会发生变化。问题出在哪里?这是iOS的bug吗?

你所看到的圆角UITextField只是UITextField本身,我通过设置UITextField的角来使其变成圆角。

我已经设置了UITextField的左右视图。在方向更改方法中,我甚至没有触碰那个UITextField

更新:

我发现UITextFieldUIFieldEditor子视图中有contentOffset更改。

- (void)resizeUITextFieldInsideUITextFieldWithOffset:(CGFloat)y {
    for(id subview in [txtSearch subviews]) {
        if([subview isKindOfClass:[UIScrollView class]]) {
            UIScrollView *textField = (UIScrollView *)subview;
            [textField setContentOffset:CGPointMake(0, y)];
        }
    }
}

我使用上面的代码来解决方向问题,但当我再次输入时,同样的问题又发生了。
2个回答

8

更改uiviwcontroller的enter image description here解决了我的问题,这是一个随机bug。

enter image description here


我可以确认,即使经过4年提问,这个解决方案对我仍然有效:D - Hemang

1

在旋转时尝试重新设置它,完成旋转后立即将其作为第一响应者。我不知道为什么会发生这种情况,但是这样做应该可以解决问题。 你是否设置了自动布局?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接