编辑后,UITextField上的Xcode 5字体大小错误

时间:2013-09-27 08:12:43

标签: ios xcode ios7 xcode5

我有自定义字体和大小的UITextFields。一切正常,直到我更改为Xcode 5以修复新iOS / Xcode的所有更改。现在当我检查我的UITextFields时,他们在占位符和编辑时有正确的字体,但是当我停止编辑时,字体大小会变大。那么为什么现在使用Xcode 5它不起作用?

屏幕截图:link

设置字体的代码没有改变:

[_eventName setFont:[UIFont fontWithName:APP_FONT_FUTURASTD_LIGHT size:16]];

4 个答案:

答案 0 :(得分:2)

您是否更改了UILabels的外观代理?我有一个类似的问题,看起来好像UITextField的文本在编辑完成后呈现为UILabel。覆盖我在UILabel上的外观代理设置为我解决了这个问题。

答案 1 :(得分:0)

现在你需要使用sizeWithAttributes:而现在需要使用NSDictionary。使用密钥UITextAttributeFont和您的字体对象传递对,如下所示:

[_eventName.text sizeWithAttributes:@{NSFontAttributeName:[UIFont fontWithName:APP_FONT_FUTURASTD_LIGHT size:16]}]

答案 2 :(得分:0)

在表格中插入行时也遇到问题 - 表格单元格中的文本字段将使用UILabel代理字体,而不是字体属性上设置的字体。滚动屏幕然后重新打开将显示正确的字体。

我能解决这个问题的唯一方法是覆盖UITextField,添加一个自定义drawRect - 在这里我必须将self.font设置为nil,然后将self.font重置为我想要的值。

克里斯

答案 3 :(得分:0)

我有这个问题,就像chrisoneiota描述的那样,问题是UITextField在某些情况下使用了UILabel。我通过覆盖UITextField解决了这个问题,但是我没有实现drawInRect:

- (void)addSubview:(UIView *)view {
    if ([view isKindOfClass:[UILabel class]]) {
        UILabel *label = (UILabel *)view;
        label.font = self.font;
    }
    [super addSubview:view];
}

这似乎运作良好。