2011-01-21 25 views
14

Tôi đang cố gắng tạo một ứng dụng Cocoa khá đơn giản. Tôi có ba cửa sổ với ba thông điệp trên họ, đó là tất cả để có nó. Những gì tôi đang cố gắng để làm được điều này:Ứng dụng Cocoa đơn giản với biểu tượng MenuBar. Làm thế nào để:?

Người dùng chạy các ứng dụng, các biểu tượng ứng dụng xuất hiện trên thanh menu và đó là tất cả những gì xảy ra, không có menu và không có biểu tượng dock

Sau đó, người dùng có thể nhấp vào biểu tượng MenuBar và có một danh sách thả xuống và chọn từ ba tin nhắn có sẵn.

Tôi biết đó là vô dụng, nhưng đây là nghĩa đen ứng dụng đầu tiên của tôi và tôi không thể tìm ra cách để có được NSStatusItem để hoạt động đúng ...

Tôi đã nhìn quanh và tìm thấy một số hướng dẫn nhưng tôi có thể' t dường như làm theo bất kỳ của họ ... bất kỳ giúp đỡ?

Trả lời

18
  1. Về "không có biểu tượng dock" - thêm boolean LSUIElement nhập cảnh vào Info.plist tập tin và thiết lập nó để đúng. Điều này cũng không hiển thị ứng dụng trong giao diện người dùng trình chuyển đổi ứng dụng (tab cmd +).
  2. Thêm menu biểu tượng thanh là càng nhiều càng nhìn vào NSStatusBarNSStatusItem tài liệu và sử dụng mã ví dụ có:

.

// this one is taken from apple documentation 
- (void)activateStatusMenu { 
    NSStatusBar *bar = [NSStatusBar systemStatusBar]; 

    theItem = [bar statusItemWithLength:NSVariableStatusItemLength]; 
    [theItem retain]; 

    [theItem setTitle: NSLocalizedString(@"Tablet",@"")]; 
    [theItem setHighlightMode:YES]; 
    [theItem setMenu:theMenu]; 
} 

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
    [self activateStatusMenu]; 
} 

Cập nhật Kể từ ARC không cho phép retain cuộc gọi trong mã, tôi quản lý để giải quyết vấn đề này bằng cách tạo ra theItem như __strong biến thể hiện của các lớp học, nơi các mục đã được tạo ra.

+1

Thật tuyệt vời. Tôi (như xử lý của tôi ngụ ý) là một tổng newb ca cao và tôi đến từ một nền vb.net và đang đấu tranh một chút với cú pháp khách quan-c và những gì không. Tuy nhiên, tôi nhận thấy rằng tài liệu về cacao táo kỹ hơn rất nhiều so với tài liệu vb của microsoft, vốn không phải là "thân thiện với người dùng". Câu trả lời của bạn đã giúp khá nhiều và tôi cảm ơn sự giúp đỡ của bạn. – Zrb0529

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