Согласно ответу @ Росса:
NSApplication.sharedApplication().mainMenu?.menuBarHeight
К сожалению, это вернет nil
до того, как приложение завершит запуск (потому что mainMenu
будет nil
). Если вам нужно это значение раньше, чем это (и вы не хотите угадывать его для будущих выпусков ОС), вы можете рассчитать его следующим образом:
if let screen = NSScreen.mainScreen() {
let menuBarHeight = screen.frame.height - screen.visibleFrame.height - screen.visibleFrame.origin.y - 1
}
Это число не будет правильным, только если есть некоторая дополнительная экранная мебель (например, док-станция), закрепленная сверху, что представляется крайне маловероятным.
Обновление: Для поддержки нескольких дисплеев (основного и дополнительного):
let appleMenuBarHeight = screen.frame.height - screen.visibleFrame.height - (screen.visibleFrame.origin.y - screen.frame.origin.y) - 1