苹果菜单栏的高度

时间:2010-05-19 16:32:08

标签: macos menubar osx-leopard

我只是想知道如何获得苹果菜单栏的高度,以像素为单位(总是在顶部)

(我的屏幕尺寸是1200 x 800)我想知道除了菜单栏会是什么。

5 个答案:

答案 0 :(得分:18)

以编程方式(因为这是SO,我正在寻找一个程序化的答案,谷歌发送给我这里)你可以通过使用:

 CGFloat menuBarHeight = [[[NSApplication sharedApplication] mainMenu] menuBarHeight];

或作为平面设计师,我知道会说:0.8cm;)

答案 1 :(得分:12)

如果您需要在运行时知道,请使用-[NSMenu menuBarHeight]

答案 2 :(得分:10)

我会发现非编程的6纳秒方式:

  • 第1步:⌘+⇧+ 4
  • 步骤2:按␣(空格),光标将从十字准线转变为选择整个窗口的内容。
  • 第3步:点击
  • 第4步:〜/桌面/屏幕截图2001 - ## - ##。png / jpg
  • 第5步:+ i

信息面板会告诉您高度(和宽度)。

(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