addNewItem:(NSToolbarItem *)item
또는 내 도구 모음에 프로그래밍 방식으로 만든 항목을 추가 할 수있는이 메서드를 찾고 있는데 아무 것도 찾지 못했습니다. 사용자가 무언가를 다운로드 할 때 Safari 에서처럼 클릭 할 때 popover를 표시하는 항목을 추가하고 싶습니다.프로그래밍 방식으로 새 NSToolbarItem을 기존 도구 모음에 추가하는 방법?
6
A
답변
12
NSToolbarDelegate
프로토콜을 준수하고 해당 클래스의 인스턴스를 도구 모음의 대리인으로 지정해야합니다. 이 대리자는 예를 들어 -toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:
을 구현하며 주어진 식별자에 대해 NSToolbarItem
인스턴스를 반환하므로 요청시 해당 항목을 만들 수 있습니다. 이렇게하면 도구 모음에서 식별자에 해당하는 항목을 요청할 때 도구 모음 항목을 반환하도록 대리인을 준비하고있는 것입니다.
그런 다음 도구 모음 인스턴스에 -[NSToolbar insertItemWithItemIdentifier:atIndex]
을 보내서 프로그래밍 방식으로 도구 모음에 새 도구 모음 항목을 추가 할 수 있습니다. 식별자 문자열 인수는 위 단락에서 사용 된 인수와 일치해야합니다. 항목을 제거해야하는 경우 -[NSToolbar removeItemAtIndex:]
을 툴바에 보냅니다.
이 내용은 Toolbar Programming Topics for Cocoa 문서의 Adding and Removing Toolbar Items 섹션의 예와 함께 설명됩니다.
왜 이렇게 복잡합니까? – Lukas
@ 루카스 NSToolbar가 설계되었을 때, 이와 같은 기술은 RAM 소비를 줄이기 위해 필요했습니다. 이것은 표준 패턴이었고 코코아에서 어떻게 작동 했었습니까? 새 물건 만이 이렇게 작동하지 않습니다. –