2009-05-08 10 views
1

는 NSApp 개체 (일명 [NSApplication sharedApplication]), (있는 경우) 어떻게 현재 활성화 된 NSTextView는 지금 어디에 삽입 지점이 깜박 얻을 수를 감안할 때? :-)코코아 : 현재 NSTextView가 삽입 지점을 깜박 거리고 있습니까?

나는 [[NSApp keyWindow]있는 contentView] 가서 전체 뷰 계층 구조를 탐색하려고하지만 너무 열심히 보인다 수 있습니다. 이상적인 코드는 [NSApp focusedTextView]입니다.

나는 응용 프로그램과 윈도우 firstResponder을 tryed, 또한 fieldEditor : forObject을 :, 그러나 이것은 (적어도 나에게) 흥미 아무것도 반환하지 않습니다.

그런데 시스템 전체의 현재 텍스트보기를 얻는 방법을 알고있는 사람이라면 더 시원할 것입니다 (접근성 API가 작동하지 않습니다 : Cocoa NSTextView를 반환하지 않습니다).

감사

답변

3

-firstResponder 기능은 필드 편집기를 반환합니다. 따라서 실제보기를 원할 경우 첫 번째 응답자의 대리자를 확인해야합니다. 자세한 내용은 field editor을 참조하십시오.

그 객체가 다른 프로세스 공간에서 일반적이기 때문에 NSTextViews로 넓은 그것을 시스템을 얻을 수있는 방법은 아마이 없습니다.

+0

감사합니다.하지만 앱에서 필드 편집기를 전혀 사용하지 않으면 어떻게 될까요? 예를 들어, Pages에서는 null을 반환합니다. 기본적으로 선택기 setInsertionPointColor :에 응답하는 현재 개체를 찾아야합니다. 시도 할 다른 것? –

+0

아, 윈도우의 firstResponder 자체가 보통 setInsertionPointColor :에 응답하지만 때로는 (Mail.app에서 메시지 편집기를 표시하기 위해 일종의 WebView를 사용함) 그렇지 않습니다. –

1

그런데 시스템 전체의 현재 텍스트보기를 얻는 방법을 알고 있다면 액세스가 더 좋지 않습니다 (액세스 가능성 API가 작동하지 않음 : Cocoa NSTextView를 반환하지 않음).

수 없습니다. NSTextViews는 프로세스 단위입니다. NSConnection을 통해 다른 프로세스가 서비스를 제공하지 않으면 다른 프로세스에서 NSTextView로 프록시를 가져올 수 없습니다. 접근성을 사용해야 할 것입니다. 밝은면에

은 접근성을 사용하는 앱 (이론적으로) 또한 MLTE/HITextView를 사용 카본 애플리케이션과 함께 작동해야 의미합니다.

+0

피터, 나는이 포스트와 관련된 질문이있다. 제발 코코아에서 할 수있는 방법이 있다면 알려주세요. http://stackoverflow.com/questions/6544311/how-to-show-nspanel-on-selected-text-on-hot-key-press-on-current-active-app thanks – AmitSri

관련 문제