Пользовательский NSCursor не распространяется на все приложения - PullRequest
4 голосов
/ 06 августа 2011

Я написал программу Какао для изменения курсора после нажатия кнопки. В частности, курсор включает изображение вместо указателя. Я установил его с помощью следующих команд:

NSImage *tmpImage = [NSImage imageNamed:@"pointer"];
NSCursor *pointer = [[NSCursor alloc] initWithImage:tmpImage hotSpot:NSMakePoint(10.0, 10.0)];
[pointer set];

Это работает, и курсор меняется правильно. Однако это изменение не распространяется на все приложения. Например, когда я переключаюсь на презентацию Keynote в режиме слайд-шоу, курсор снова превращается в стрелку. Когда я переключаюсь на полноэкранное отображение PDF для презентации, курсор меняется на руку (я думаю, это курсоры по умолчанию, установленные соответствующими приложениями).

Мой вопрос: есть ли способ переопределить их и оставить свой пользовательский курсор для всех приложений? Я хотел бы сохранить свой измененный курсор даже во время слайд-шоу Keynote и полноэкранного просмотра в формате PDF. Есть идеи?

Спасибо!

1 Ответ

0 голосов
/ 26 июня 2013

Невозможно изменить курсор для других приложений, по крайней мере, без использования общедоступного API.

Единственный способ сделать это - создать собственное окно без границ, в котором будет отображаться только изображениекурсора, затем используйте CoreGraphics API, чтобы скрыть курсор и просто перемещать окно при перемещении мыши.Это примерно так, как Apple делает большой курсор, который можно включить в системных настройках Accessibility.

...