2010-05-19 6 views
8

Me preguntaba cómo obtener la altura de la barra de menú de la manzana, en píxeles (el que está siempre en la parte superior)Altura de la barra de menú de la manzana

(Mi tamaño de la pantalla es de 1200 x 800) Me preguntaba lo que lo haría excluir la barra de menú.

+0

que leí 22 píxeles, pero no estoy seguro acerca de la fiabilidad – Samuel

+1

Trate de tomar una captura de pantalla y la medición de la altura en Photoshop o algún otro manipulador gráfico software, no? – jeanreis

+0

Por supuesto * dow * gracias - ha sido un día largo: P – Samuel

Respuesta

12

Y si necesita saber en tiempo de ejecución, use -[NSMenu menuBarHeight].

18

programación (ya que esto es así, yo estaba buscando una respuesta programática y Google me envió aquí) se puede obtener mediante el uso de:

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

o como diseñador gráfico sé que diría: 0,8 cm;)

8

La manera-6-nanosegundos no programáticos me gustaría averiguar:

  • Paso 1: ⌘ + ⇧ + 4
  • Paso 2: presione ␣ (espacio) y su cursor pasará de una cruz a algo que selecciona ventanas enteras.
  • Paso 3: Haga clic en
  • Paso 4: ~/Escritorio/Screen shot 2001 - ## - ## png/jpg
  • Paso 5:.  + i

El panel de información le dirá usted la altura (y el ancho).

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

+0

¿xd ᄅ ᄅ - ʇǝƃ ɐ ʎ ʎ ʎ ʎ ʎ ʎ ʎ ʎ ʎ ʎ ʎ ʎ ʎ ʎ ʎ? – Ross

+0

¡La instantánea -> espacio -> seleccionar ventanas es increíble! :pag – Samuel

1

Según @ la respuesta de Ross:

NSApplication.sharedApplication().mainMenu?.menuBarHeight 

Desafortunadamente, esto volverá nil antes de la aplicación termina lanzamiento (porque el mainMenu habrá nil). Si necesita este valor antes de lo que (y no desea que adivinar para las futuras versiones del sistema operativo), se puede calcular así:

if let screen = NSScreen.mainScreen() { 
    let menuBarHeight = screen.frame.height - screen.visibleFrame.height - screen.visibleFrame.origin.y - 1 
} 

Este número no será sólo es correcta si hay alguna muebles de pantalla adicionales (como el Dock, por ejemplo) fijados desde la parte superior, lo que parece extremadamente improbable.

Actualización: Para soportar múltiples pantallas (primarios y secundarios):

let appleMenuBarHeight = screen.frame.height - screen.visibleFrame.height - (screen.visibleFrame.origin.y - screen.frame.origin.y) - 1 
Cuestiones relacionadas