Как получить уведомление в OS X, когда операция перетаскивания * начинается * где-нибудь? - PullRequest
2 голосов
/ 06 февраля 2011

Мне интересно, можно ли как-нибудь уведомить мое приложение о начале операции перетаскивания в любом месте на экране, даже если у меня там нет активного окна.

Я изучил обычные API-интерфейсы перетаскивания, но ничего такого не заметил. Протокол NSDraggingDestination вместе с методом -[NSWindow/NSView registerForDraggedTypes:] позволяет вам замечать, когда кто-то перетаскивает что-то и оно переходит в ваше окно, но я хотел бы заметить это, когда любая операция перетаскивания запускается где-либо экран.

Какие-нибудь советы, как это сделать? Существует ли для него стандартный API-интерфейс Cocoa или есть закрытый API / какой-то грязный хак для получения этой информации?

Заранее спасибо:)

Ответы [ 2 ]

3 голосов
/ 06 февраля 2011

Взгляните на NSEvent's + addGlobalMonitorForEventsMatchingMask: handler: . Я не уверен, что вы можете отслеживать перетаскивание мышью, но, безусловно, можно отслеживать события, связанные с кнопками мыши вверх / вниз.

0 голосов
/ 06 февраля 2011

я этого не делал,
но я предполагаю, что вам нужно какое-то внешнее программное обеспечение, отслеживающее ВСЕ действия мыши в системе, и сообщающее об этом вашему приложению (или приложению, которое делает это само),
события перетаскивания обычно сообщаются в вашем приложении, только если в окне приложения есть активность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...