Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Trying to bold titleLabel of UIButton in response to delegate method being called in iOS

I am working on an application where I am calling the UITextFieldDelegate method:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { }

I am successfully calling it, and within the method, I enable a particular button. This is also working fine. However, the problem I am facing is that I am unable to make the title on the button bold when the button is enabled. I set the font in Interface Builder, and I'm trying to bold the title programamtically. Here is the relevant code that shows what I am doing:

        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

        }

Ignore the "if" clause itself. I want the text on the button to be bold when the button is enabled, and I want the text on the button to be "normal", when it is disabled. What am I doing wrong?

like image 442
syedfa Avatar asked Sep 16 '13 20:09

syedfa


People also ask

How do I change the font size on a button title in Swift?

Select the label and then open up the Attribute Inspector (CMD + Option + 5). Select the button on the font box and then you can change your text size or font.


2 Answers

_doneButton.titleLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:24];

this will make your text bold, because you are using system font, which is helvetica. I hope it helps

like image 149
incmiko Avatar answered Nov 03 '22 00:11

incmiko


Similar to BooTooMany's answer, but I found that it actually changed the size when used in a UIButton.

I used:

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

That way, it keeps the same font size as what it started with, just makes it bold

like image 31
mikemaat Avatar answered Nov 03 '22 01:11

mikemaat