2011-03-26 42 views
7

Tôi khá mới mẻ đối với ca cao, vì vậy hãy tha lỗi cho tôi vì bất kỳ sai lầm ngu ngốc nào tôi tạo ra. Tôi có một NSStatusItem, mà tôi muốn sử dụng để mở một menu. Tuy nhiên theo như tôi biết và đã nghe qua các hình thức khác nhau, mà không có một cái nhìn tùy chỉnh bạn bị giới hạn chỉ là một trình đơn thả xuống. Điều này có đúng không? Và nếu vậy, làm cách nào để bạn thực hiện chế độ xem tùy chỉnh để thực hiện điều gì đó (ví dụ: mở cửa sổ trong trường hợp của tôi)? Cảm ơn vì bất kì sự giúp đỡ.Làm cách nào để mở cửa sổ khi nhấp vào NSStatusItem?

Trả lời

14

Không, điều đó không đúng. Bạn cần thiết lập mục tiêu và hành động cho mục trạng thái để gọi một phương thức thực hiện những gì bạn muốn (mở cửa sổ).

// This goes where you set up the status item 
NSStatusItem *statusItem; // You need to get this from the status bar 
[statusItem setTarget:self]; 
[statusItem setAction:@selector(openWindow:)]; 

// This method is called when the status item is clicked 
- (void)openWindow:(id)sender { 
    NSWindow *window = [self window]; // Get the window to open 
    [window makeKeyAndOrderFront:nil]; 
} 

Bạn cũng có thể muốn gọi [NSApp activateIgnoringOtherApps:nil]; để openWindow của bạn: phương pháp để đảm bảo rằng các cửa sổ bạn mở không phải là phía sau cửa sổ một số ứng dụng khác.

+0

Cảm ơn! Hoạt động hoàn hảo ngay bây giờ :) – Luke

+1

Cảm ơn bạn đã nhập, tôi đã tóm tắt điều này trong một bài đăng trên blog http://www.jademind.com/blog/posts/show-nswindow-below-your-nsstatusitem một lần nữa – anka

Các vấn đề liên quan