2013-09-16 2 views
4

Я работаю над приложением, в котором я звоню метод UITextFieldDelegate:Попытки смелой titleLabel из UIButton в ответ делегировать метод вызывается в прошивкой

- (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 

     } 

Игнорировать предложение «если». Я хочу, чтобы текст на кнопке был полужирным, когда кнопка включена, и я хочу, чтобы текст на кнопке был «нормальным», когда он отключен. Кто-нибудь может понять, что я делаю неправильно?

Заранее благодарим всех, кто отвечает.

+0

какой шрифт вы используете? например: helvetica? – incmiko

+0

Если вы используете iOS 6 и выше, вы можете использовать название '- (void) setAttributedTitle: (NSAttributedString *) title forState: (UIControlState) state'. – danypata

+0

Какой UIControlState я использовал? – syedfa

ответ

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

это сделает ваш текст полужирным, потому что вы используете системный шрифт, который является helvetica. Я надеюсь, что это помогает

21

Если вы используете стандартные шрифты и хотите сделать его жирным шрифтом, это уборщик:

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

Таким образом, вам не придется беспокоиться о семье или размера шрифта ,

+0

Отлично, это, вероятно, должно быть принято ... –

2

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! 
+0

Это хороший ответ –

0

Подобный ответ BooTooMany, но я обнаружил, что он фактически изменил размер при использовании в UIButton.

я использовал:

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

Таким образом, он сохраняет тот же размер шрифта, как то, что он начал с того, просто делает его смелым

Смежные вопросы