Есть ли возможность получить уведомление, если другое приложение получает событие прокрутки? - PullRequest
1 голос
/ 14 июля 2010

Я разрабатываю приложение в Какао, которое позволяет пользователям рисовать в любом заданном окне в OS X. Рисунки перемещаются вместе с соответствующим окном при перетаскивании на экран.Чтобы завершить эту связь между чертежами и окнами (и их содержимым) внизу, я бы хотел отловить события прокрутки из окна, чтобы отреагировать на расположение / видимость чертежей.

Пример:

Пользователь открывает Safari и просматривает Интернет.На определенном веб-сайте он / она рисует круг вокруг ссылки и делает рукописные заметки (все это считается рисунком, вводимым перьевым планшетом).После этого он / она перемещает окно, чертежи также перемещаются, чтобы они оставались в верхней части ссылки на веб-сайте.Затем он / она начинает прокручивать веб-сайт, и местоположение ссылки меняется (перемещается вверх, пока не выходит за пределы области просмотра).

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

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

Классы доступности Какао могут быть полезныно до сих пор я не нашел решения.

Спасибо за вашу помощь.

О, и если это не сложно, возможно, вы можете сказать мне, как получать уведомления, когда Safari переключаетсяВкладки;)

kkthxbai

1 Ответ

2 голосов
/ 16 июля 2010

Я не уверен, что вы можете отслеживать события прокрутки.Однако намного проще, если вы просто отслеживаете положение ссылки с помощью API-интерфейса.

Просто держите ссылку на эту ссылку и постоянно опрашивайте ее на предмет ее позиции, если позиция меняется, вы знаете, чтоdo.

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

Если вы еще не обнаружили его,Accessibility Inspector может помочь вам в определении того, что вы можете получить с помощью API-интерфейса Accessibility, а браузер пользовательского интерфейса pfiddlesoft позволяет вам регистрироваться для уведомлений.

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