Как вы рисуете текст в пользовательском режиме с помощью Objective-C?

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

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

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

Ответ 1

Вы можете попробовать что-то в этом направлении:

//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

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

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