2011-09-06 9 views
6

Tôi đang tìm một phương thức có tên là addNewItem:(NSToolbarItem *)item hoặc một cái gì đó như thế này cho phép tôi thêm một mục được tạo lập trình vào thanh công cụ của tôi, nhưng tôi chưa tìm thấy bất kỳ mục nào. Tôi muốn thêm một mục hiển thị cửa sổ bật lên khi người dùng nhấp vào nó, như trong Safari khi người dùng tải xuống nội dung nào đó.Làm thế nào để thêm lập trình NSToolbarItem mới vào thanh công cụ hiện có?

Trả lời

12

Bạn cần phải có một lớp học phù hợp với giao thức NSToolbarDelegate và có một phiên bản của lớp đó là đại biểu thanh công cụ của bạn. Ví dụ, đại biểu này sẽ triển khai -toolbar:itemForItemIdentifier:willBeInsertedIntoToolbar:, trả về phiên bản NSToolbarItem cho một số nhận dạng nhất định, có khả năng tạo mục đó theo yêu cầu. Bằng cách này, bạn đang chuẩn bị đại biểu của mình trả về một mục thanh công cụ khi thanh công cụ yêu cầu nó cho mục tương ứng với số nhận dạng.

Sau khi thực hiện điều đó, bạn có thể thêm một mục thanh công cụ mới vào thanh công cụ bằng cách gửi -[NSToolbar insertItemWithItemIdentifier:atIndex] đến phiên bản thanh công cụ. Đối số chuỗi định danh phải khớp với đối số được sử dụng trong đoạn ở trên. Nếu bạn cần xóa một mục, hãy gửi -[NSToolbar removeItemAtIndex:] vào thanh công cụ.

Điều này được mô tả bằng các ví dụ trong phần Adding and Removing Toolbar Items của tài liệu Toolbar Programming Topics for Cocoa.

+6

tại sao quá phức tạp, Apple? – Lukas

+2

@Lukas vì trở lại khi NSToolbar được thiết kế, các kỹ thuật như thế này là cần thiết để giảm mức tiêu thụ RAM. Đây là một mẫu tiêu chuẩn và cách thức _everything_ trong Cocoa được sử dụng để làm việc. Chỉ những thứ mới không hoạt động như thế này. –