gpt4 book ai didi

ios - 在 iOS 上覆盖 appearanceWhenContainedIn

转载 作者:行者123 更新时间:2023-11-28 17:56:18 25 4
gpt4 key购买 nike

我有一些在我的应用程序加载时正在设置的通用样式:

[[UITextField appearanceWhenContainedIn:[NRWindow class], nil] setTintColor:kBlueColor];
[[UITextField appearanceWhenContainedIn:[NRWindow class], nil] setFont:[UIFont fontWithName:kFontNameLatoRegular size:14]];
[[UILabel appearanceWhenContainedIn:[NRWindow class], nil] setFontName:kFontNameLatoRegular];

出于某种原因,它会影响占位符字体大小。在特定 View 上,我想使用以下代码覆盖这些样式(仅用于占位符):

 UIFont *font = [UIFont fontWithName:kFontNameLatoLight size:16];
self.emailTextField.font = font;
self.emailTextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"Email Address" attributes: @{ NSFontAttributeName:font}];

出于某种原因,占位符没有获得正确的字体。但是,如果我评论一般样式 (appearanceWhenContainedIn),它就完美无缺。有帮助吗?

谢谢

最佳答案

解决方案

注意:请记住,此修复仅在 iOS 6.0 及更高版本上进行了测试。

要解决此错误,您必须创建 UITextField 的子类并覆盖 -setAttributedPlaceHolder 以将结果存储在 ivar 中。然后,您必须覆盖 -drawPlaceholderInRect 方法并枚举属性并使用 NSAttributedString+NSStringDrawing 的 -drawAtPoint 方法(唯一的 iOS 6 特定方法)绘制文本。这允许支持自定义属性,这有助于调整设计。

http://engineering.meetme.com/2013/11/uitextfield-attributedplaceholder-doesnt-work/

关于ios - 在 iOS 上覆盖 appearanceWhenContainedIn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27846852/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com