2010-08-17 1 views
0

동일한 애플리케이션에 여러 메뉴가 있으며 하위 메뉴를 공유하고 싶습니다.여러 NSMenus에서 NSMenuItems 공유하기

단순화하기 위해

,

..의 하나는 메인 메뉴에서 다른 도크 타일 메뉴라고하자 나는 꽤 많은 항목 (의 글꼴 이름을 가정 해 봅시다)를 포함 하위 메뉴를 가지고 많은의 I 여러 가지 이유로 iboutlet 참조를 유지해야합니다.

IB에서 IB를 "공유"하는 방법을 찾을 수 없으므로 결국 IB 정의를 복제합니다 (즉, 두 개의 다른 장소에서 각 항목을 손으로 다시 작성). 두 개의 nsmenuitem에 대한 참조를 유지합니다. 단지 하나, 등등. 그것은 좋지 않다.

여러 NSMenus간에 하위 메뉴 정의를 공유하는 방법이 있습니까?

IB에서 최상위 메뉴 항목을 만들려고했지만 메뉴 정의의 아무 것도 연결하지 못하는 것 같습니다. 게다가 프로그래밍 방식으로 처리하더라도 바인딩, 응답 계층 구조, 메모리 관리 등이 엉망이 될 수도 있습니다.

이렇게하는 것이 가장 좋은 방법이 있습니까? 아무도 안 했니? 결과는 무엇입니까?

답변

1

동일한 컨트롤러가 모든 메뉴 항목의 대상이면 위임자로 설정하고 NSMenuDelegate 프로토콜 (구체적으로 numberOfItemsInMenu:menu:updateItem:atIndex:shouldCancel: 메서드)을 구현해야합니다. 각 메뉴는 얼마나 많은 아이템을 가져야 하는지를 묻고 적자를 채우기 위해 필요한만큼 아이템을 생성 한 다음, 아이템을 채우기를 요청합니다 (액션과 타겟을 설정하는 것을 포함하여).

결과는 두 메뉴를 모두 정의하는 코드에서 하나의 위치입니다.

+0

와우, 공유 할 시간을내어 주셔서 감사합니다. 좋은 생각이야! –