ios 6.0 setAttributedText崩溃

时间:2014-03-14 11:12:18

标签: ios ios6 nsattributedstring

- (IBAction)pinFieldChanged:(id)sender {
    UITextField *pinField = sender;
    float kerninig = 76.0;

    NSAttributedString *attributedString =
        [[NSAttributedString alloc]
        initWithString:pinField.text
        attributes:
        @{
            NSFontAttributeName : [UIFont fontWithName:@"Helvetica Neue" size:36],
            NSForegroundColorAttributeName : [UIColor colorWithRed:130.0/255.0 green:130.0/255.0 blue:130.0/255.0 alpha:1.0],
            NSKernAttributeName : @(kerninig)
        }];
    if ([pinField respondsToSelector:@selector(setAttributedText:)]) {
     [pinField setAttributedText:attributedString];
    }

}

当我试图将属性文本设置为文本字段时,我的应用程序在ios6.0下崩溃,尽管此选择器可用于iOS 6.0及更高版本

你能告诉我为什么会这样吗?

提前致谢!)

2 个答案:

答案 0 :(得分:0)

iOS5可能需要CTFont才能使用

 NSString* s = @"Yo ho ho and a bottle of rum!";
    NSMutableAttributedString* mas = [[NSMutableAttributedString alloc]  initWithString:s];
    __block CGFloat f = 18.0;
    CTFontRef basefont = CTFontCreateWithName((CFStringRef)@"Baskerville", f, NULL);

https://github.com/mattneub/Programming-iOS-Book-Examples/blob/master/iOS5bookExamples/ch23p689styledText1/p579p593styleText1/RootViewController.m

使用ios 6以下

 NSAttributedString *stringValue= [[NSAttributedString alloc] initWithString:@"cocoalibrary.blogspot.com" attributes:@{NSForegroundColorAttributeName: [UIColor redColor]}];

答案 1 :(得分:0)

NSAttributedString在IOS 6下面不可用。请参阅this link,您可以找到此行。

  

在iOS 6及更高版本中,您可以使用属性字符串来显示格式   文本视图,文本字段和其他一些控件中的文本