2013-07-16 15 views
8

Próbuję przykleić przypisany ciąg do mojego NSTextView, ale po prostu pokazuje się jako zwykły tekst, bez atrybutów. Tworzę ciąg tak:NSTextView i NSAttributedString

NSString *str = @"Parsing Directory Structure\n\n"; 

NSMutableAttributedString *attrstr = [[NSMutableAttributedString alloc] initWithString:str]; 
NSDictionary *attributes = @{ 
          NSForegroundColorAttributeName : [NSColor blueColor], 
          NSFontAttributeName : [NSFont fontWithName:@"HelveticaNeue-Bold" size:20.f] 
          }; 
[attrstr setAttributes:attributes range:NSRangeFromString(str)]; 

[[self.textView textStorage] appendAttributedString:attrstr]; 

i na NSTextView (wewnątrz widoku przewijania) Mam „Pozwala Rich Text” pole zaznaczone nadal, a pole edycji zaznaczone. Zasadniczo próbuję użyć tego jako okna wyjściowego konsoli.

Odpowiedz

5

NSMakeRangeFromString analizuje tekstową reprezentację zakresu, nie tworzy zakresu obejmującego ciąg. Ponieważ twój tekst nie zawiera liczb całkowitych, zwraca zakres {0, 0} - lokalizacja i długość są zerowe. Więc dopóki twój tekst nie jest stylem.

Zamień na NSMakeRange(0, str.length), a Twój kod powinien zadziałać.

+0

Dziękujemy! To działało idealnie. – Gargoyle