如何调用返回NSMutableAttributedString的方法

时间:2013-05-21 01:51:17

标签: ios nsattributedstring

我创建了一个方法,我想创建一个部分粗体的NSMutableAttributedString。但是我在调​​用它来返回它应该的数据时遇到了一些麻烦。

这就是我实现代码的方式

//.h
// creates bold portion of the labels in toolbar
- (NSMutableAttributedString *)createBoldString:(NSString *)labelString intRangeA:(int)rangeA intRangeB:(int)rangeB;





//.m

       - (NSMutableAttributedString *)createBoldString:(NSString *)labelString intRangeA:(int)rangeA intRangeB:(int)rangeB {
            // iOS6 and above : Use NSAttributedStrings
            const CGFloat fontSize = 12;
            UIFont *boldFont = [UIFont boldSystemFontOfSize:fontSize];
            UIFont *regularFont = [UIFont systemFontOfSize:fontSize];
            UIColor *foregroundColor = [UIColor whiteColor];

            // Create the attributes
            NSDictionary *attrs = [NSDictionary dictionaryWithObjectsAndKeys:
                                   boldFont, NSFontAttributeName,
                                   foregroundColor, NSForegroundColorAttributeName, nil];
            NSDictionary *subAttrs = [NSDictionary dictionaryWithObjectsAndKeys:
                                      regularFont, NSFontAttributeName, nil];
            const NSRange range = NSMakeRange(rangeA, rangeB); // range of " 2012/10/14 ". Ideally this should not be hardcoded

            // Create the attributed string (text + attributes)
            NSMutableAttributedString *attributedText =
            [[NSMutableAttributedString alloc] initWithString:labelString
                                                   attributes:attrs];
            [attributedText setAttributes:subAttrs range:range];

            // Set it in our UILabel and we are done!
            return attributedText;
        //    [firstToolBarLabel setAttributedText:attributedText];
        }

这就是我试图在没有成功的情况下调用它的方式

NSAttributedString *firstAttr = [[NSAttributedString alloc] init];
    [firstAttr create.... // this dose not auto complete and I cannot see the method

我不知道为什么,但我不能使用我创建的方法。我做得对吗?有没有不同的方式来传回数据或我错过了什么

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

您想致电[self create...],而不是[firstAttr create...]。您的create...方法是对象的实例方法(self)。 返回属性字符串,但它不是 属性字符串类的方法。