Как изменить цвет NSString? - PullRequest
0 голосов
/ 15 июля 2011

Я пытаюсь создать приложение для Mac с пользовательским интерфейсом, похожим на мессенджер.Пока у меня есть текстовое поле, текстовое представление и кнопка, где все успешно подключено в App Delegate в IB.Когда вы вводите свой текст в текстовое поле и нажимаете кнопку, он отправляет строковое значение в текстовое представление и стирает его в текстовом поле.Моя проблема заключается в том, чтобы имя пользователя было другим цветом в текстовом представлении.Например, когда я публикую что-то, это должно произойти в текстовом представлении «Имя пользователя: ...».Я хочу, чтобы имя пользователя имело другой цвет, чем текст, который он вставил.

Пока у меня есть NSString *userName; и NSString *userString; в моем .h файле.Мой метод состоит в том, чтобы строка userName всегда была одного цвета и распечатывала ее в виде текста перед печатью userString.Вот где я застрял, я попытался найти ответы в Интернете, но не повезло.

Пока я пробовал,

userName = [NSDictionary dictionaryWithObjectsAndKeys:[NSColor redColor], NSBackgroundColorAttributeName, nil];

и

[userName setSelectedTextAttributes:
 [NSDictionary dictionaryWithObjectsAndKeys:
  [NSColor blueColor], NSBackgroundColorAttributeName, nil]];

под этим кодом в файле .m

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification

1 Ответ

1 голос
/ 15 июля 2011

NSString объекты не имеют атрибутов. Вы хотите NSAttributedString. Более конкретно, вы хотите элементы управления, которые принимают NSAttributedStrings с различными диапазонами, имеющими разные атрибуты. В вашем случае NSTextView может быть проще в использовании, чем NSTextField.

Пожалуйста, прочитайте документацию: Руководство по программированию атрибутной строки , Справочник по классам NSTextView и Обзор системы текста перед тем, как спросить неизбежное "не могли бы вы предоставить пример кода пожалуйста?" : -)

...