rFl*_*lex 4 objective-c uitextfield ios ios7.1
从iOS 7.1开始,更改字体大小和调用sizeToFit无法按预期工作.文本将不会在正确的位置绘制并将被剪切.当UITextField第一响应者进入时,文本转到正确的位置.呼叫resignFirstResponder会使它再次失败.

有人有解决方法吗?
- (void)viewDidLoad
{
[super viewDidLoad];
UITextField *textField = [[UITextField alloc] init];
textField.text = @"This is a test";
textField.backgroundColor = [UIColor redColor];
[textField sizeToFit]; // Calling this will make the second sizeToFit to fail
textField.font = [textField.font fontWithSize:textField.font.pointSize * 3];
[textField sizeToFit];
textField.center = CGPointMake(self.view.frame.size.width / 2.0, self.view.frame.size.height / 2.0);
textField.delegate = self;
[self.view addSubview:textField];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
我找到了一个解决方法.在调用sizeToFit之前更改文本字符串将使其正常工作:
textField.font = [textField.font fontWithSize:textField.font.pointSize * 3];
NSString *oldText = textField.text;
textField.text = @"";
textField.text = oldText;
[textField sizeToFit];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2496 次 |
| 最近记录: |