Почему [NSTextStorage appendAttributedString:] не принимает атрибуты моего NSAttributedString? - PullRequest
2 голосов
/ 30 марта 2012

Я пытаюсь поместить текст с определенным шрифтом и цветом в NSTextView. Я могу поместить текст просто отлично, но он теряет мои атрибуты:

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
    [NSFont fontWithName:@"Monaco" size:10], @"NSFontAttributeName",
    [NSColor blueColor],                     @"NSForegroundColorAttributeName",
    nil];
NSAttributedString *string = [[NSAttributedString alloc] initWithString:someNSString
                                                             attributes: dict];
[someNSTextStorage appendAttributedString:string];

Я прочитал все соответствующие ссылки на классы (NSTextView, NSTextStorage, NSAttributedString и т. Д.) И до сих пор не знаю, почему это не работает так, как я ожидал.

Что я делаю неправильно / отсутствует?

1 Ответ

2 голосов
/ 31 марта 2012

Обнаружили вашу проблему: вы заключили NSForegroundColorAttributeName в кавычки.Таким образом, вместо макроса вы передаете литерал NSString.То же самое относится и к вашему NSFontAttributeName.Избавьтесь от них, и все готово.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...