2010-05-19 9 views
8

Ich frage mich, wie die Höhe des Apfels menubar zu bekommen, in Pixel (die immer an der Spitze)Höhe des Apfels menubar

(My Bildschirmgröße 1200 x 800) Ich frage mich, was wäre es ausgenommen die Menüleiste.

+0

I 22 Pixel gelesen, aber ich bin nicht sicher über die Zuverlässigkeit – Samuel

+1

Versuchen Sie einen Screenshot zu nehmen und die Höhe in Photoshop oder einem anderen Mess grafische Manipulation. Software, nicht? – jeanreis

+0

Natürlich * dow * danke - war ein langer Tag: P – Samuel

Antwort

12

Und wenn Sie zur Laufzeit wissen müssen, verwenden Sie -[NSMenu menuBarHeight].

18

Programmatically (wie dies der Fall, ich war für eine programmatische Antwort suchen und google hat mich hierher geschickt), können Sie diese erhalten, indem mit:

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

oder als Grafik-Designer weiß, dass ich sagen würde: 0.8 cm;)

8

Die nicht-programmatische-6-Nanosekunden, wie ich herausfinden würde:

  • Schritt 1: ⌘ + ⇧ + 4
  • Schritt 2: Drücken Sie ␣ (Leerzeichen) und der Cursor wird von einem Fadenkreuz zu einem Objekt, das ganze Fenster auswählt.
  • Schritt 3: Klicken
  • Schritt 4: ~/Desktop/Bildschirmschuss 2001 - ## - ## png/jpg
  • Schritt 5:.  + i

Das Panel Info erzählen Sie die Höhe (und Breite).

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

+0

¿xd ᄅ ᄅ - ʇǝƃ ı ɹǝʍ ɐ ɐ ʎ ʎ ʎ ʎ ı ı ǝɥʍ – Ross

+0

Der Schnappschuss -> Raum -> wählen Sie Windows-Ding ist genial! : p – Samuel

1

Wie pro @ Ross Antwort:

NSApplication.sharedApplication().mainMenu?.menuBarHeight 

Leider ist diese nil zurückkehren, bevor die App startet beendet (weil die mainMenunil sein wird). Wenn Sie diesen Wert früher benötigen als die (und Sie nicht wollen, es für die Zukunft OS Versionen erraten), können Sie es wie so berechnen:

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

Diese Zahl nicht nur richtig sein, wenn es etwas ist, Extra-Bildschirm Möbel (wie das Dock zum Beispiel) von oben fixiert, was äußerst unwahrscheinlich scheint.

Update: Um mehrere Displays (primär und sekundär) zu unterstützen:

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