Как вы рисуете текст в пользовательском представлении, используя Objective-C? - PullRequest
10 голосов
/ 03 марта 2009

Я выяснил, как использовать класс NSBezierPath для рисования фигур в функции drawRect моего пользовательского класса представления, однако я не могу понять, как рисовать текст. Следующий код - это то, что у меня есть для рисования текста (находится в функции drawRect):

NSText *text = [NSText new];
[text setTextColor: [NSColor yellowColor]];
[text setText: @"Hello!"];

Я предполагаю, что мне может потребоваться указать NSRect или NSPoint, чтобы сообщить объекту NSText, где нужно рисовать себя, но я не могу найти ничего в документации по Какао, как это сделать.

Ответы [ 2 ]

23 голосов
/ 03 марта 2009

Вы можете попробовать что-то вроде этого:

//note we are using the convenience method, so we don't need to autorelease the object
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:[NSFont fontWithName:@"Helvetica" size:26], NSFontAttributeName,[NSColor blackColor], NSForegroundColorAttributeName, nil];

NSAttributedString * currentText=[[NSAttributedString alloc] initWithString:@"Cat" attributes: attributes];

NSSize attrSize = [currentText size];
[currentText drawAtPoint:NSMakePoint(yourX, yourY)];
2 голосов
/ 03 марта 2009

NSText - это представление (в частности, суперкласс NSTextView).

Существует несколько способов рисования текста с атрибутами и без них (шрифты, цвета, стили абзацев и т. Д.). См. Дополнения AppKit к NSString и к NSAttributedString .

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