2011-03-13 4 views
6

NSMenu 계층 구조가 표시 될 때마다 동적으로 수정할 수 있어야합니다 (항목 추가/제거 등). 예를 들어 :각 NSMenu 구조를 열 때마다 수정 하시겠습니까?

  1. 사용자는 메인 메뉴에서 추적 세션을 시작하고
  2. 이 하위 메뉴를 감지 하위 메뉴를 선택하여 다시 같은 하위 메뉴를 통해, 사용자 트랙을 열 수 및 실행 코드는
  3. 추적을 계속 수정하는 것입니다 :

고토 2 그래서 나는 NSMenuDelegate 프로토콜을 구현하는 객체가이 작업을 수행 할 수 있습니다. 방법 menuNeedsUpdate은 처음 작동하지만 (2) 두 번째로는 하위 메뉴가 열리지 않습니다. 의 구조를 수정하지 마십시오

: menuWillOpen 때마다 호출

방법 (만 추적 세션 당 한 번만 호출),하지만이 문서는이 방법을 사용하여 자격을 박탈하는 것 같다 다음과 같은 경고가 메뉴 또는이 메뉴 항목 중 방법.

이것을 수행 할 수있는 방법이 있습니까?

+0

NSMenu.update()가 필요하다고 생각하십니까? – onmyway133

답변

0

menuWillOpen은 하위 메뉴를 처음 추적 할 때 한 번만 호출됩니다. 이 시점에서 메뉴를 채 웁니다.

그런 다음 menuWillOpen이 다시 호출되지 않습니다. 그러나 메뉴 변경 사항은 실제로 적용됩니다. 따라서 기본 상위 메뉴가 열려있는 동안 소스 데이터가 변경 될 때마다 (또는 주기적으로 변경 사항을 감지 할 수없는 경우 주기적으로) 일반 NSMenu API를 사용하여 메뉴를 업데이트하십시오.

시스템이 메뉴를 추적하는 동안 메뉴 업데이트에 사용하는 방법이 모두 실행되는지 확인하십시오.