我正在使用NSStatusItem处理应用程序。
我有两个问题1是未选择状态下缺少图标
但是,当您单击应该显示应用程序图标的位置时,该区域很大。与菜单大小相同。
以下是我创建NSStatusItem和菜单的方法。
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
_statusItem = [[NSStatusBar systemStatusBar] statusItemWithLength:NSVariableStatusItemLength];
_statusItem.title = @"";
_statusItem.image = [NSImage imageNamed:@"bulb"];
_statusItem.alternateImage = [NSImage imageNamed:@"bulb-alt"];
_statusItem.highlightMode = YES;
NSMenu *menu = [[NSMenu alloc] init];
[menu addItemWithTitle:@"About App" action:@selector(openAboutThisImage:) keyEquivalent:@""];
[menu addItem:[NSMenuItem separatorItem]]; // A thin grey line
[menu addItemWithTitle:@"Start at Login" action:@selector(startAtLogin:) keyEquivalent:@""];
[menu addItem:[NSMenuItem separatorItem]]; // A thin grey line
[menu addItemWithTitle:@"Quit App" action:@selector(terminate:) keyEquivalent:@""];
_statusItem.menu = menu;
}
我有两套图标。一个白色和一个黑色。每组有两个尺寸16x16和32x32(@ 2x)。
图标尺寸:
白色的大小相同。
BLACK图标的资产JSON
{
"images" : [
{
"idiom" : "universal",
"filename" : "bulb.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "bulb@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
和白色图标
{
"images" : [
{
"idiom" : "universal",
"filename" : "bulb-alt.png",
"scale" : "1x"
},
{
"idiom" : "universal",
"filename" : "bulb-alt@2x.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
我真的不知道发生了什么。我一直在使用Apple Docs作为参考。但我显然遗漏了一些东西。
任何帮助?
答案 0 :(得分:0)
两个建议:
NSSquareStatusItemLength
使用模板图片:
NSImage *image = [NSImage imageNamed:@"bulb"];
image.template = YES;
_statusItem.image = image;
删除该行以设置备用图像。操作系统管理正常/黑暗的外观。