문서 기반 응용 프로그램이 있습니다. 사용자가 NSTextView에서 선택한 텍스트를 마우스 오른쪽 버튼으로 클릭 할 때 상황에 맞는 정보를 표시하는 컨텍스트 메뉴를 추가하려고합니다.문맥 메뉴에 NSMenuDelegate 메서드가 호출되지 않았습니다.
내 XIB 파일의 루트 객체로 Apple documentation 및
- 추가 한 NSMenu의 조언을 따랐다.
- NSMenu 인스턴스를 NSTextView의
menu
콘센트에 연결했습니다. - IBAction을 NSMenu의 NSMenuItem에 연결했습니다.
지금까지 그렇게 좋았습니다. 모든 것은 예상대로 작동합니다 : 메뉴 항목이 나타나고 선택되면 액션이 호출됩니다.
내 메뉴 항목을 적절히 구성 할 수 있도록 메뉴가 나타나기 전에 NSTextView에서 선택한 텍스트를 가져와야합니다. 방금 전에 맞는 볼 메뉴를 사용자 정의하는 방법 : 당신이 컨텍스트 메뉴를 사용자 정의해야하는 경우 문서에 따르면
, 메뉴의 대리인으로 적절한 오브젝트를 설정하고 menuWillOpen를 구현하여 수행 할 수 있습니다 나타납니다.
File 's Owner에 NSMenu의 대리인을 연결합니다. 대리자 메서드가 호출되지 않습니다. (menuWillOpen:
이 내가 필요한 유일한 사람이지만 다른 사람도 시도했습니다.)
메뉴 항목을 선택할 때 호출되는 IBAction 내에 중단 점을 설정했습니다. 디버거로 메뉴를 검사하면 델리게이트 메소드를 구현 한 객체로 델리게이트가 올바르게 설정되어있는 것을 볼 수 있습니다.
확인할 다른 항목이 있습니까? 내가 뻔뻔하게 잘못하고있는 건 뭐니?
엑스 코드 v4.6.3
SDK의 v10.8
배포 대상 10.7 뒷조사 후, 이것은 내가 찾은 것입니다
브라보! 당신이 제안한 것처럼 위임자를 설정하는 것은 효과가있는 것처럼 보이지만, 꼭 할 필요는 없습니다. 귀하가 지적한 NSTextViewDelegate 호출은 텍스트보기와 메뉴에 액세스 할 수있게 해 주며, 이는 필자가 필요로하는 메뉴를 사용자 정의하는 데 필요한 모든 것입니다. 많은 감사합니다. – shebang