ios - 更改字体后在 UITextField 上调用 sizeToFit 在 iOS 7.1 上无法正常工作

标签 ios objective-c uitextfield ios7.1

自 iOS 7.1 起,更改字体大小和调用 sizeToFit 无法按预期工作。文本将不会绘制在正确的位置并被剪切。当 UITextField 成为第一响应者时,文本会到达正确的位置。调用 resignFirstResponder 将使其再次失败。

enter image description here

有人对此有解决方法吗?

- (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;
}

最佳答案

我找到了解决方法。在调用 sizeToFit 之前更改文本字符串将使其正常工作:

textField.font = [textField.font fontWithSize:textField.font.pointSize * 3];
NSString *oldText = textField.text;
textField.text = @"";
textField.text = oldText;
[textField sizeToFit];

关于ios - 更改字体后在 UITextField 上调用 sizeToFit 在 iOS 7.1 上无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22492607/

相关文章:

ios - 正在加载 Apple Pay 送货地址 No Street

ios - 点击 UITextField 时更改键盘动画持续时间

ios - 将 wowza 流式传输到 iPhone

ios - 如何用动画结束 UILongPressGestureRecognizer?

ios - AVAssetExportSession 无法创建文件错误-12115

objective-c - NSSound 几个小时后停止工作

ios - 找到满足 `ParseFacebookUtils` 依赖项的规范,但它们需要更高的最低部署目标

swift - MFMailComposeViewController setToRecipients 从设置文本字段附加字符串问题

ios - 我想将占位符日期显示为当前日期

ios - UIStoryboard loadNibNamed模拟方法