我正在开发一个我调用UITextFieldDelegate方法的应用程序:
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { }
我成功调用它,在方法中,我启用了一个特定的按钮。这也很好。但是,我面临的问题是,当按钮启用时,我无法在按钮粗体上创建标题。我在Interface Builder中设置了字体,我试图以编程方式加粗标题。以下是显示我正在做的事情的相关代码:
if ([keys count] == [_tireName count]) {
[_doneButton setEnabled:YES];//this line works
[[_doneButton titleLabel] setFont:[UIFont boldSystemFontOfSize:28]];//this line does nothing
} else if ([keys count] < [_tireName count]){
[_doneButton setEnabled:NO];//this line works
[[_doneButton titleLabel] setFont:[UIFont systemFontOfSize:28]];//this line does nothing
}
忽略“if”子句本身。当按钮启用时,我希望按钮上的文本为粗体,并且我希望按钮上的文本在禁用时为“正常”。谁能看出我做错了什么?
感谢所有回复的人。
答案 0 :(得分:28)
如果您正在使用标准字体并希望将其设为粗体,则更清晰:
[_doneButton.titleLabel setFont:[UIFont boldSystemFontOfSize:[UIFont systemFontSize]]];
这样,您不必担心字体系列或大小。
答案 1 :(得分:7)
_doneButton.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:24];
这将使您的文本变为粗体,因为您使用的是系统字体,即helvetica。我希望它有所帮助
答案 2 :(得分:3)
Swift 3
doneButton.titleLabel?.font = UIFont.systemFont(ofSize: 28, weight: UIFontWeightBold)
可以使用以下权重:
UIFontWeightUltraLight
UIFontWeightThin
UIFontWeightLight
UIFontWeightRegular
UIFontWeightMedium
UIFontWeightSemibold
UIFontWeightBold
UIFontWeightHeavy
UIFontWeightBlack
请注意Apple的文档:
// Beware that most fonts will _not_ have variants available in all these weights!
答案 3 :(得分:2)
与BooTooMany的答案类似,但我发现它实际上在UIButton中使用时改变了大小。
我用过:
[_doneButton.titleLabel setFont:[UIFont boldSystemFontOfSize:_doneButton.titleLabel.font.pointSize]];
这样,它保持与开始时相同的字体大小,只是使其变为粗体