2013-08-10 7 views
0

저는 종종 Xcode의 프로젝트에서 작업하면서 Safari를 열어서 Stack Overflow 등을 찾아 보았습니다. 몇 번, 나는 사파리의 웹 주소/검색 엔진 필드와 입력 한 단어 또는 두 단어를 검색했다. 입력하지 않았더라도 Xcode의 검색 네비게이터에 입력된다. 거기에. 그것은 매번 그것을하지 않습니다.Xcode의 검색 네비게이터가 Safari에서 검색을 당기는 이유는 무엇입니까?

편집 : 검색 네비게이터를 통해 입력 한 텍스트도 Safari에서 팝업 될 수 있습니다.

아무런 문제가 발생하지 않지만 선택한 단어가 관련성이없는 것 같아서 왜 이런 괴짜가 발생하는지 궁금합니다. 내가 엑스 코드 4.6.3을 실행하는거야

, 사파리 6.0.3 및 Mac OS X 10.8.4

이 글리치인가? 반 굽은 기능?

+0

믿을 수 없을 정도로 저를 괴롭게합니다! 그리고 지금 그것을 재현하려고하면 다른 방향에서도 일어난다는 것을 알게되었습니다. –

+0

내가 편집하겠습니다. –

답변

1

당신이보고있는 것은 OS X Global Find Pasteboard입니다. 어디서나 개인 클래스 NSFindPanel이 글로벌 판지 호출 얻을 것이다 (일반적으로 텍스트 필드와 함께)를 호출하고 가장 최근의 쿼리 포함 메타 데이터를 '발견'에 대한 하나의 중앙 위치를 제공합니다 :

또한

로를 NSTextView의 표준 찾기 패널은 대/소문자 구분 및 하위 문자열 매칭 옵션을 포함하여 검색 옵션 메타 데이터도 전달합니다. 이 메타 데이터는 전역 찾기 대지에 NSFindPanelSearchOptionsPboardType 값으로 속성 목록에 저장됩니다. 따라서 타사 응용 프로그램은이 속성 목록에 추가 키를 저장하여 많은 타사 응용 프로그램의 찾기 패널에 공통적 인 다양한 검색 옵션을 지원하기 위해 원하는대로 추가 메타 데이터를 전달할 수 있습니다. Section "Find Panel Search Metadata" in the NSTextField documentation on developer.apple.com

에서

난 당신이 하나 개의 앱에서 검색을 수행 한 경우, 다른 응용 프로그램에서 동일한 검색을 수행 할 수 있습니다 상당히 높은 확률이, 설계 의도가 생각하는 따라서 전역 찾기 대지가 서로 다른 앱의 찾기 필드 간 동기화 메커니즘 역할을합니다. 다른 운영체제에서 온 사용자의 경우 앱의 찾기 기능이 자체 프로세스에 매우 많은 샌드 박스가있는 매우 이상한 행동으로 보입니다. 가장 최근의 검색어는 앱 별 검색 용어이며이 글로벌 공유는 아닙니다. 공간.

복제와 관련하여 텍스트를 클립 보드로 복사 한 다음 찾기 필드에 붙여 넣어보고 동작을 트리거 할 수 있습니다. 애플리케이션에서 애플리케이션으로 전환하면 글로벌 찾기 대지가 NSFindPanel 찾기를 업데이트합니다. 이것이 Xcode와 Safari 사이에서 양방향으로 진행되는 것을 보는 이유입니다. 둘 다 NSFindPanel을 사용하므로 둘 다 글로벌 대지 찾기를 참조하고 다음에 포커스를 얻을 때 동기화가됩니다.

아쉽게도 이것은 사용자가 구성 할 수있는 설정이 아닙니다. 모든 NSFindPanels에는이 동작이 있으며 동작을 변경하기 위해 설정할 수있는 시스템 환경 설정이나 기본 환경 설정이 없습니다. bugreport.apple.com에서 Apple에 문제를 제기하는 것을 고려하십시오.

+0

만약 내가 어플을 만들고 있는데 어떤 이유로 애플 리케이션에이 기능을 사용하고 싶지 않다면 NSFindPanel을 사용하지 않을 것입니다. –

+0

NSFindPanel은 비공개 API이며 어쨌든 사용해야하는 것이 아닙니다. 어떤 시점에서 API가 공개되면 사용자가 '찾기'UI를 구현하는 것이 전역 찾기 마분지 동작을 피할 수있는 좋은 방법이 될 것입니다. –

+0

나는 "다른 앱에서 같은 검색을 수행 할 가능성이 상당히 높습니다."라고 반박합니다. ;-) 그러나 관계없이, 이것을 설명해 주셔서 감사 드리며, 나는 그것을 꺼놓을 수 없습니다. :-( – hayesk