我只是想知道如何获得苹果菜单栏的高度,以像素为单位(始终在顶部)
(我的屏幕尺寸是 1200 x 800) 我想知道不包括菜单栏会是什么。
以编程方式(因为这是如此,我一直在寻找编程答案,谷歌在这里发给我)你可以通过使用:
CGFloat menuBarHeight = [[[NSApplication sharedApplication] mainMenu] menuBarHeight];
或者作为一个平面设计师,我知道会说:0.8cm ;)
如果您需要在运行时知道,请使用-[NSMenu menuBarHeight]
.
我会发现的非编程 6 纳秒方式:
信息面板将告诉您高度(和宽度)。
(sןǝxıd oʍʇ-ʎʇuǝʍʇ :ɹǝʍsuɐ)
根据@Ross 的回答:
NSApplication.sharedApplication().mainMenu?.menuBarHeight
不幸的是,这将nil
在应用程序完成启动之前返回(因为mainMenu
will 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
快速简单的 Swift 5 解决方案:
NSStatusBar.system.thickness