首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >添加NSStatusItem

添加NSStatusItem
EN

Stack Overflow用户
提问于 2010-01-30 17:18:02
回答 1查看 570关注 0票数 2

我正在尝试从Monobjc桥中为Mono添加一个NSStatusItem。函数被调用,并且没有抛出异常,但是我的图标没有出现:(。

下面是我的代码:

代码语言:javascript
复制
#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
  }
    }
}

提前谢谢你,

Yvan

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-02-08 17:34:27

在创建_statusItem变量后,必须立即保留该变量:

代码语言:javascript
复制
_statusItem = NSStatusBar.SystemStatusBar.StatusItemWithLength(32f);
_statusItem.Retain();
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2167378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档