【发布时间】:2017-04-21 00:17:49
【问题描述】:
我正在使用 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)。
图标大小:
白色的大小相同。
黑色图标的资产 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 作为参考。但我显然遗漏了一些东西。
有什么帮助吗?
【问题讨论】:
-
重新检查图标大小。
-
用截图检查和更新问题。它们是规定的尺寸
-
请检查您的白色 2x 图标实际上是 32x32,因为从屏幕截图中我觉得大小不同。
标签: objective-c macos cocoa nsstatusitem