Глобально скрыть курсор мыши в Какао / Углерод?

Есть ли способ глобально скрыть курсор мыши для всех приложений в Cocoa (или Carbon)? Или хотя бы заменить на что-нибудь другое?

РЕДАКТИРОВАТЬ: Спасибо за ввод, ребята, но оказывается, что Дэниел Ялкут нашел решение некоторое время назад :) http://lists.apple.com/archives/carbon-dev/2006/Jan/msg00555.html


person Community    schedule 11.09.2009    source источник
comment
Не хотите еще немного объяснить, зачем вам это нужно? Обычно это кажется плохой идеей, так как вы потеряете преимущество изменения курсора при наведении курсора на элементы. Или вы собираетесь еще обшить курсор? т.е. все еще изменяется при наведении указателя мыши, но снова на настраиваемый курсор   -  person Mike Abdullah    schedule 12.09.2009


Ответы (4)


Вы ищете CGDisplayHideCursor, который является частью API Quartz Display Services.

person 0xced    schedule 29.09.2009
comment
Спасибо, раньше не видел. В большинстве случаев вызывающий объект должен быть приложением переднего плана, чтобы воздействовать на курсор. Итак ... в каком случае я не должен быть приложением переднего плана? :) - person ; 04.10.2009
comment
Я пришел сюда в поисках способа скрыть курсор только в моем приложении переднего плана, и это был именно тот билет. Спасибо! - person e.James; 28.04.2010
comment
Кажется, что ссылка в ответе сейчас не действует, но ее можно найти по адресу: developer.apple. com / documentation / coregraphics /. При использовании Swift мне пришлось использовать CGDisplayHideCursor(CGMainDisplayID()), поскольку kCGDirectMainDisplay, похоже, недоступен. - person Todd; 26.04.2019

просто добавьте это в свой код:

CGDisplayHideCursor (kCGNullDirectDisplay);
person Jesus    schedule 15.07.2014

Проверьте: http://developer.apple.com/legacy/mac/library/samplecode/CarbonCocoa_PictureCursor/listing2.html Это старый образец, но, вероятно, все еще работает.

Однако я ожидаю, что вы будете ограничены окном своего приложения. Если вы хотите скрыть это для всех, вам, вероятно, придется сделать так, чтобы ваше окно закрыло экран.

Интересный факт: старая функция панели инструментов была просто HideCursor ().

person Seth    schedule 11.09.2009
comment
Спасибо. Есть какие-нибудь советы по поводу того, как сделать окно, закрывающее мой экран? (Для ясности, я хочу, чтобы курсор мыши также скрывался для всех приложений ...) - person ; 12.09.2009
comment
Правильная обработка полноэкранного окна означает, что вам нужно убедиться, что вы закрываете все подключенные экраны. Посмотрите: cocoadevcentral.com/articles/000028.php. В качестве альтернативы вы можете найти образец кода для приложения-заставки. Хранители экрана обычно также закрывают экран. В вашем случае вы захотите изменить свое окно так, чтобы оно располагалось на уровне ниже окон вашего приложения. - person Seth; 19.09.2009

Нет, я не верю, что есть способ делать то, что вы хотите, кроме как показывать полноэкранное окно, а затем скрывать абсолютно все на рабочем столе. Это также предотвратило бы, например, нажатия клавиш отправляются в нужное приложение и т.п.

person AlBlue    schedule 19.09.2009