2010-01-23 4 views
2

나는 응용 프로그램 목록을 가지고 있으며 응용 프로그램 이름 메뉴에 각 항목의 왼쪽에 아이콘이있는 NSPopupButton을 만들고 싶습니다.이미지와 텍스트가있는 메뉴가있는 NSPopupButton은 어떻게 만듭니 까?

내 배열 배열에 NSPopupButton을 바인딩 할 수 있었지만 이미지에 바인딩 항목이 없습니다. 나는 그곳에 세포를 넣고 그 세포를 이미지와 텍스트로 묶을 수 있다고 생각했지만 IB에서 적절한 세포를 찾지 못했습니다.

바인딩을 사용하여 간단하고 명확한 방법이 있습니까? 사용자 지정 셀을 작성해야합니까?

답변

6

재고 NSPopUpButton을 사용하여 메뉴 항목의 제목과 이미지를 바인딩 할 방법이 없습니다. 서브 클래스를 노출시키기 위해 서브 클래스를 작성하고 IBPlugin을 작성해야합니다. 물론, 셀도 처리해야합니다.

분리 기호와 "기본값"또는 "모두"와 같은 모델 밖의 메뉴 항목을 사용할 수없는 등 여러 가지 이유로 인해 NSPopUpButton과 바인딩을 혼합하면 상처를 입을 수 있습니다. 소스 목록과 같은 다른 컨트롤을 사용하거나 수동으로 팝업 메뉴를 채우고 다시 채우는 것을 고려하십시오.

+0

적어도 셀을 제공하는 좋은 샘플 코드를 찾았습니다. http://developer.apple.com/mac/library/samplecode/SourceView/index.html 내부의 ImageAndTextCell 클래스 –

+0

예, 그렇지만 NSPopUpButtonCell이 필요한 NSPopUpButton을 사용하면 도움이되지 않습니다. 또 다른 종류의 셀은 메뉴를 표시하고 추적하는 방법을 알지 못합니다. 콘텐츠 객체를 표시하는 작업에 두 번째 셀을 지정하는 방법은 없습니다. 메뉴 항목의 작업이기 때문입니다. –

0

NSMenuItem에 이미지 바인딩이 있습니다 (매개 변수 섹션 waaaaaayyyyy 아래). 그래서 당신이 실행중인 응용 프로그램의 배열에있는 경로에 그 값을 바인딩해야한다고 생각합니다. 공유 된 NSWorkspace 개체를 사용하여 앱 아이콘을 가져올 수 있습니다.

+2

그가 이미 존재하는 하나의 메뉴 항목을 바인딩했다면 좋을 것입니다. 질문은 팝업 버튼 자체를 바인딩하여 동적으로 메뉴 항목을 생성하도록 함을 의미합니다. –