Изменение курсора в NSTextView

Я надеюсь, что это будет относительно легко сделать.

Я пишу приложение для Mac, которое будет (в основном) гигантским NSTextView. Я хотел бы переопределить курсор позиции текста по умолчанию на уникальный курсор цвета / формы. У меня нет большого опыта в Quartz или общем рисовании, но это то, что я могу изучить самостоятельно.

Что я в первую очередь ищу, так это советы о том, как лучше всего это реализовать. Будет ли вопрос переопределения функции drawRect, вызова super и последующей реализации моего собственного кода отрисовки?

Как мне найти подходящее место для рисования этого курсора? Содержится ли оно в переданном прямоугольнике drawRect?

1 ответ

По сути, вам придется создать подкласс NSTextView и переопределить некоторые методы. Очевидным является

-(void)drawInsertionPointInRect:(NSRect)aRect color:(NSColor *)aColor turnedOn:(BOOL)flag

но это, кажется, не совсем позаботится об этом. Видимо, вам также нужно переопределить закрытый метод:

-(void)_drawInsertionPointInRect:(NSRect)arg1 color:(NSColor *)color

Ищите здесь кого-то, кто уже пытается это сделать: http://www.cocoadev.com/index.pl?CustomInsertionPoint

Другие вопросы по тегам