Повторите поведение курсора из скриншота MacOS - PullRequest
4 голосов
/ 23 апреля 2019

Отказ от ответственности;только начинающий, когда дело доходит до разработки Swift / macOS.


Инструмент скриншотов Ctrl + Shift + 4 на macOS, имеет сопровождающее изменение курсора, которое яискал способ репликации.

В исходном состоянии запуска это перекрестие с координатами пикселей, и переключение его в режим захвата окна нажатием пробела меняет курсор на камеру.

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

Я пытался повторить это поведение, создав прозрачный полноэкранный NSWindow с .floating level и изменение курсора для представления содержимого.

Это работает, вроде как ... Но имеет некоторые раздражающие особенности.

Во-первых, кажется, что непрозрачность представления не можетбыть строгим нулем, но, по крайней мере, некоторая доля> = 0,01.Я не нашел упоминания об этом в документах NSView , но здесь упоминается для UIView здесь .Для встроенного инструмента скриншотов, похоже, нет никакого альфа-оверлея 0,01.

Во-вторых, при вкладке в любое приложение окно .floating все еще вверху, но делаетвид потерял фокус, что означает, что курсор возвращается к значению по умолчанию.В этом случае встроенный инструмент для создания снимков экрана имеет очень небольшую задержку, когда появляется новое приложение, а затем снова меняет курсор на пользовательский.

Использую ли я совершенно неверный подход, илимне просто нужно повернуть несколько кнопок и циферблатов, чтобы этот работал?

Любые указатели очень ценятся!

...