我只是想知道如何获得苹果菜单栏的高度,以像素为单位(总是在顶部)
(我的屏幕尺寸是1200 x 800)我想知道除了菜单栏会是什么。
答案 0 :(得分:18)
以编程方式(因为这是SO,我正在寻找一个程序化的答案,谷歌发送给我这里)你可以通过使用:
CGFloat menuBarHeight = [[[NSApplication sharedApplication] mainMenu] menuBarHeight];
或作为平面设计师,我知道会说:0.8cm;)
答案 1 :(得分:12)
如果您需要在运行时知道,请使用-[NSMenu menuBarHeight]
。
答案 2 :(得分:10)
我会发现非编程的6纳秒方式:
信息面板会告诉您高度(和宽度)。
(sǝǝxıdoʍʇ-ʎʇuǝʍʇ:ɹǝʍsuɐ)
答案 3 :(得分:3)
根据@ Ross的回答:
NSApplication.sharedApplication().mainMenu?.menuBarHeight
不幸的是,这会在应用完成启动之前返回nil
(因为mainMenu
将是nil
)。如果您之前需要此值(并且您不希望在未来的OS版本中猜测它),您可以像这样计算它:
if let screen = NSScreen.mainScreen() {
let menuBarHeight = screen.frame.height - screen.visibleFrame.height - screen.visibleFrame.origin.y - 1
}
这个数字只有在从顶部固定一些额外的屏幕家具(例如Dock)时才会正确,这似乎不太可能。
更新:支持多个显示(主要和次要):
let appleMenuBarHeight = screen.frame.height - screen.visibleFrame.height - (screen.visibleFrame.origin.y - screen.frame.origin.y) - 1
答案 4 :(得分:2)
快速简单的Swift 5解决方案:
NSStatusBar.system.thickness