11

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

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

4

5 回答 5

19

以编程方式(因为这是如此,我一直在寻找编程答案,谷歌在这里发给我)你可以通过使用:

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

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

于 2011-02-12T00:12:44.000 回答
13

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

于 2010-06-04T18:45:11.353 回答
11

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

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

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

(sןǝxıd oʍʇ-ʎʇuǝʍʇ :ɹǝʍsuɐ)

于 2011-02-12T00:23:05.683 回答
9

根据@Ross 的回答:

NSApplication.sharedApplication().mainMenu?.menuBarHeight

不幸的是,这将nil在应用程序完成启动之前返回(因为mainMenuwill nil)。如果您比这更早需要这个值(并且您不想在未来的操作系统版本中猜测它),您可以这样计算它:

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
于 2015-05-18T19:47:08.590 回答
3

快速简单的 Swift 5 解决方案:

NSStatusBar.system.thickness
于 2020-11-16T16:57:00.343 回答