3

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

截图:链接

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

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

4 回答 4

2

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

于 2013-11-14T18:51:06.007 回答
0

现在你需要使用 sizeWithAttributes: 代替,它现在需要一个 NSDictionary。使用键 UITextAttributeFont 和您的字体对象传递对,如下所示:

[_eventName.text sizeWithAttributes:@{NSFontAttributeName:[UIFont fontWithName:APP_FONT_FUTURASTD_LIGHT size:16]}]
于 2013-09-27T08:17:49.317 回答
0

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

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

克里斯

于 2014-01-29T13:26:14.413 回答
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];
}

这似乎运作良好。

于 2016-03-15T10:36:45.347 回答