2010-07-14 5 views
1

사용자가 OS X의 특정 윈도우를 그릴 수있는 Cocoa 응용 프로그램을 개발 중입니다. 화면에서 드래그 할 때 도면이 해당 창과 함께 이동합니다. 도면과 창 (및 그 내용) 사이의 연결을 완료하려면 도면의 위치/가시성에 반응하기 위해 창에서 스크롤 이벤트를 얻고 싶습니다.다른 응용 프로그램에서 스크롤 이벤트를 받으면 알림을받을 수 있습니까?

예 :

사용자가 Safari를 열고 웹을 탐색합니다. 특정 웹 사이트에서 링크 주위에 원을 그리며 손으로 메모를 작성합니다 (이 모든 것은 펜 태블릿으로 입력 한 그림으로 간주됩니다). 그 다음에 창을 움직이면 그림이 이동되어 웹 사이트의 링크 위에 남아있게됩니다. 그런 다음 웹 사이트를 스크롤하기 시작하고 링크 위치가 변경됩니다 (뷰포트 외부에있을 때까지 올라갑니다).

이제는 그 이벤트를 잡아서 레이어를 도면 위로 이동하여 링크 위에 놓아 두는 것이 좋습니다. 링크가 더 이상 보이지 않으면 스크롤을 통해 뷰포트에 다시 연결될 때 도면의 가시성을 해제하고 다시 켜게됩니다.

나는 이것이 매우 까다로운 임무이며 다른 응용 프로그램에서 이러한 이벤트를 가로 챌 수 있다는 것을 알고 있으며 OS 보안 결함으로 간주 될 수도 있지만 어쩌면 누군가가 내게 힌트를주기에 충분한 코더가 될 수 있습니다.)

Cocoa Accessibility 클래스가 도움이 될 수 있지만 지금까지는 해결책을 찾지 못했습니다.

도움 주셔서 감사합니다.

아, 그리고 당신에게 까다로운 아니라면, 어쩌면 당신이 어떻게 사파리 탭을 전환 할 때 알림을받을 말해 줄 수, 당신은 스크롤 이벤트를 모니터링 할 수있는 경우)

kkthxbai

답변

2

는 잘 모르겠어요. 그러나 내게 필요한 옵션 API를 사용하여 링크의 위치를 ​​모니터링하는 것이 훨씬 쉽습니다.

해당 링크에 대한 참조를 보유하고 위치를 계속 폴링하면 위치가 변경된 경우 수행 할 작업을 알 수 있습니다.

또한 AXObserverAddNotification을 사용해 볼 수도 있지만, 알고있는 한 위치 변경을 모니터링 할 수있는 알림이 없습니다.

접근성 검사기는 접근성 API를 사용하여 얻을 수있는 것을 식별하는 데 많은 도움을 줄 수 있으며 pfiddlesoft의 UI 브라우저를 사용하면 알림을 등록 할 수 있습니다.

관련 문제