10

我正在开发一个调用 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”子句本身。我希望按钮启用时按钮上的文本为粗体,并且我希望按钮上的文本在禁用时为“正常”。我究竟做错了什么?

4

4 回答 4

30

如果您使用的是标准字体并希望将其设为粗体,则更简洁:

[_doneButton.titleLabel setFont:[UIFont boldSystemFontOfSize:[UIFont systemFontSize]]];

这样,您就不必担心字体系列或大小。

于 2014-03-24T22:50:00.617 回答
10
_doneButton.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:24];

这将使您的文本加粗,因为您使用的是系统字体,即 helvetica。我希望它有帮助

于 2013-09-16T20:58:55.540 回答
4

斯威夫特 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!
于 2017-04-26T15:46:18.417 回答
3

类似于 BooTooMany 的答案,但我发现它在 UIButton 中使用时实际上改变了大小。

我用了:

[_doneButton.titleLabel setFont:[UIFont boldSystemFontOfSize:_doneButton.titleLabel.font.pointSize]];

这样,它保持与开始时相同的字体大小,只是使其粗体

于 2017-10-06T23:20:08.007 回答