我正在开发一个调试设置的项目,这样如果你的类没有继承特定的类,那么当调试中运行app时它会显示出来。例如,普通的文本字段文本将显示为黄色,背景为红色。
所以我有一个子类,我将覆盖初始化方法,以便我可以创建一个新按钮。在这个课程中,我正在设置标题颜色和字体。但是我还想设置属性字符串,这样当有人创建按钮时,文本总是带下划线。
我尝试过以下代码:
+ (void)initialize
{
[[self appearance] setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
[[self appearance] setFont:[UIFont fontWithName:kDOMFontMedium size:12]];
NSAttributedString *attributedString = [[NSAttributedString alloc] init];
NSDictionary *underlineAttribute = @{NSUnderlineStyleAttributeName: @(NSUnderlineStyleSingle)};
attributedString = [[NSAttributedString alloc] initWithString:@"Privacy Policy"
attributes:underlineAttribute];
[[self appearance] setAttributedText:attributedString];
}
但是当我运行时,我得到以下内容:'NSInvalidArgumentException', reason: '-[_UIAppearance setAttributedText:]:
我可以在使用该类时在代码中设置下划线。然而,在初始化中使用它似乎更合乎逻辑,因为文本和下划线将始终相同。
无论如何要实现这个目标吗?