2010-01-30 41 views
2

我試圖添加一個NSStatusItem從單聲道單聲道橋內。 函數被調用,並且不會拋出異常,但我的圖標不顯示:(Monobjc ::添加NSStatusItem

。這是我的代碼:提前

#define DEBUG_APP 
using System; 
using Monobjc.Cocoa; 
using Monobjc; 
namespace YvanSoftware.TwitMenu 
{ 
    [ObjectiveCClass] 
public class TwitMenuController : NSObject 
    { 

    [ObjectiveCField] 
    NSStatusItem _statusItem; 

    [ObjectiveCMessage("awakeFromNib")] 
    public void AwakeFromNib() 
    { 
    try { 
    if (_statusItem == null) { 
    NSMenu menu = new NSMenu(""); 
    _statusItem = NSStatusBar.SystemStatusBar.StatusItemWithLength(32f); 
    _statusItem.Image = NSImage.ImageNamed("twitter.png"); 
    NSMenuItem menuItem = new NSMenuItem("Send tweet!",new IntPtr(),""); 
    menuItem.ActionEvent += new ActionEventHandler(showTweetWindow); 
    menu.AddItem(menuItem); 
    _statusItem.Menu = menu; 
    DebugPrint("Status item added??"); 
    } 
    } catch (Exception ex) { 
    DebugPrint(ex.Message); 
    } 
    } 

    public TwitMenuController(IntPtr i) : base(i) {} 

    public TwitMenuController() {} 

    public void showTweetWindow(Id sender) { 
    Console.WriteLine("Not implemented. (0x01)"); 
    } 

    [ObjectiveCMessage("showAbout:")] 
    public void showAbout() { 
    Console.WriteLine("Not implemented (0x02)"); 
    } 

    void DebugPrint(string s) { 
#if DEBUG_APP 
    Console.WriteLine("*** DEBUG: " + s + " ***"); 
#endif 
    } 
    } 
} 

感謝,

伊凡

回答

2

你必須保持其在創建後_statusItem可變權:

_statusItem = NSStatusBar.SystemStatusBar.StatusItemWithLength(32f); 
_statusItem.Retain();