试图将动态NSString文本转换为粗体文本

时间:2014-10-22 07:46:31

标签: ios objective-c

我是iOS开发的新手。我无法让我的字符串变得粗暴。

提前致谢! 这是我的代码

- (void)viewDidLoad {
[super viewDidLoad];

NSString *sentence = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%@%@%@%@", self.name, self.adjective, self.noun, self.verb]];

NSMutableAttributedString *finalSentence = [[NSMutableAttributedString alloc] initWithString:sentence];

NSRange nameRange = NSMakeRange(0, self.name.length);
NSRange adjectiveRange = NSMakeRange(self.name.length, self.adjective.length);
NSRange nounRange = NSMakeRange((self.adjective.length + self.name.length), self.noun.length);
NSRange verbRange = NSMakeRange((self.adjective.length + self.name.length + self.noun.length), self.verb.length);

[finalSentence beginEditing];

[finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldMT" size:17.0] range:nameRange];
[finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldMT" size:17.0] range:adjectiveRange];
[finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0] range:nounRange];
[finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0] range:verbRange];

[finalSentence endEditing];

NSString *completeSentence = [finalSentence string];

self.resultTextView.text = completeSentence;

}

3 个答案:

答案 0 :(得分:0)

有一个单独的NSAttributedString课并不是偶然的。您使用属性字符串的completeSentence属性检索的string是普通NSString,不包含格式信息(因为它不能)。

您必须将属性字符串对象本身分配给文本视图的attributedText属性。

答案 1 :(得分:0)

您要将自定义文字([finalSentence string])的纯文本版本分配到UITextView的纯文本属性。

您应该将属性文本直接设置为attributedText的<{1}}属性 -

UITextView

答案 2 :(得分:0)

致电

self.resultTextView.attributedText = finalSentence;  

以下是您需要的代码

- (void)viewDidLoad 
{
    [super viewDidLoad];

    NSString *sentence = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%@%@%@%@", self.name, self.adjective, self.noun, self.verb]];

    NSMutableAttributedString *finalSentence = [[NSMutableAttributedString alloc] initWithString:sentence];

    NSRange nameRange = NSMakeRange(0, self.name.length);
    NSRange adjectiveRange = NSMakeRange(self.name.length, self.adjective.length);
    NSRange nounRange = NSMakeRange((self.adjective.length + self.name.length), self.noun.length);
    NSRange verbRange = NSMakeRange((self.adjective.length + self.name.length + self.noun.length), self.verb.length);

    [finalSentence beginEditing];

    [finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldMT" size:17.0] range:nameRange];
    [finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial-BoldMT" size:17.0] range:adjectiveRange];
    [finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0] range:nounRange];
    [finalSentence addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Helvetica-Bold" size:12.0] range:verbRange];

    [finalSentence endEditing];
    self.resultTextView.attributedText = finalSentence;
}