2011-09-06 4 views

답변

12

NSToolbarDelegate 프로토콜을 준수하고 해당 클래스의 인스턴스를 도구 모음의 대리인으로 지정해야합니다. 이 대리자는 예를 들어 -toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:을 구현하며 주어진 식별자에 대해 NSToolbarItem 인스턴스를 반환하므로 요청시 해당 항목을 만들 수 있습니다. 이렇게하면 도구 모음에서 식별자에 해당하는 항목을 요청할 때 도구 모음 항목을 반환하도록 대리인을 준비하고있는 것입니다.

그런 다음 도구 모음 인스턴스에 -[NSToolbar insertItemWithItemIdentifier:atIndex]을 보내서 프로그래밍 방식으로 도구 모음에 새 도구 모음 항목을 추가 할 수 있습니다. 식별자 문자열 인수는 위 단락에서 사용 된 인수와 일치해야합니다. 항목을 제거해야하는 경우 -[NSToolbar removeItemAtIndex:]을 툴바에 보냅니다.

이 내용은 Toolbar Programming Topics for Cocoa 문서의 Adding and Removing Toolbar Items 섹션의 예와 함께 설명됩니다.

+6

왜 이렇게 복잡합니까? – Lukas

+2

@ 루카스 NSToolbar가 설계되었을 때, 이와 같은 기술은 RAM 소비를 줄이기 위해 필요했습니다. 이것은 표준 패턴이었고 코코아에서 어떻게 작동 했었습니까? 새 물건 만이 이렇게 작동하지 않습니다. –