Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UITextField cursor position change on orientation change

Working fine with iOS6 even if I change the orientation Working fine with iOS6

Working fine with iOS7 If I don't change the orientation Working fine with iOS7

Error in display when orientation gets change iOS7.* Error in display when orientation gets change iOS7

I am creating UITextField programmatically, its working fine with < iOS7,

with iOS7 and higher , when I change orientation UITextField cursor position gets change. What's the issue? Is it bug of iOS?

The rounded corners UITextField you're seeing is UITextField only, I just make it rounded by setting corner of UITextField.

I've set left and right view of UITextField. Also in orientation changes method I'm not even touching that UITextField.

Update:

I find that there's contentOffset changes in UIFieldEditor subview of UITextField

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

I fix it using the above code in orientation, but when I type again the same problem occurring again.

like image 417
Hemang Avatar asked Apr 10 '14 12:04

Hemang


2 Answers

Changing the uiviwcontroller's enter image description here fixed the issue for me, random bug.

enter image description here

like image 69
glued Avatar answered Nov 01 '22 09:11

glued


Try to resign it when you are going to rotate and again put as first responder as soon as you finish rotating it. I don't actually why it happens but this should make the try. Do you have autolayout set?

like image 42
schumyspain Avatar answered Nov 01 '22 10:11

schumyspain