Search code examples
iosnsattributedstringwatchkitapple-watchwkinterfacelabel

WatchKit, AttributedString formatting not working


I am building my first WatchKit App and am having troubles with NSAttributedString formatting as it does not seem to work as I'd expect ;)

This is my code:

UIFont *textFont = [UIFont fontWithName:@"Menlo" size:30];
UIFont *hlFont = [UIFont fontWithName:@"Menlo-Bold" size:30];

NSMutableAttributedString *information = [[NSMutableAttributedString alloc]initWithString:@"ADDED AN ENTRY OF " attributes:@{NSFontAttributeName : textFont}];
NSString *amountString = [NSString stringWithFormat:@"%.2f",(-1)*handler.amount.floatValue];
NSNumber *underline = [NSNumber numberWithInt:NSUnderlineStyleSingle];
NSAttributedString *amount = [[NSAttributedString alloc]initWithString:amountString attributes:@{NSFontAttributeName : hlFont, NSUnderlineStyleAttributeName : underline }];

NSAttributedString *to = [[NSMutableAttributedString alloc]initWithString:@" TO " attributes:@{NSFontAttributeName : textFont}];

NSString *categoryString = handler.category;
NSAttributedString *category = [[NSAttributedString alloc]initWithString:categoryString attributes:@{NSFontAttributeName : hlFont, NSUnderlineStyleAttributeName : underline }];

[information appendAttributedString:amount];
[information appendAttributedString:to];
[information appendAttributedString:category];

[_informationLabel setAttributedText:information];

and this the result:

enter image description here

Expectation

10.00 and Stuff should be underlined and in boldface.

Is there something fundamentally different to how attributed strings work on the watch than on iOS? What am I missing?

read through this: https://developer.apple.com/library/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/TextandLabels.html


Solution

  • Solved it, the problem were the fonts @"Menlo".

    By using

    UIFont *textFont = [UIFont systemFontOfSize:20];
    UIFont *hlFont = [UIFont systemFontOfSize:20];
    

    the formatting with underlines works fine.