2015-06-17 6 views
6

Während der Entwicklung einer Menüleiste App, habe ich eine harte Zeit finden die bevorzugte Methode, um die App tatsächlich gut aussehen zu lassen. Ich hätte gedacht, dass Apple-Kontrollen im Wesentlichen das größtenteils gehandhabt hätten, aber es scheint nicht.Wie lässt sich eine Menüleiste mit "Dark Mode" in Yosemite gut aussehen?

Was ist die bevorzugte Methode, um sicherzustellen, dass eine Menüleiste im hellen und dunklen Modus gut aussieht? Fehle ich an Steuerungsfunktionen, die dies erleichtern, oder muss ich den Modus manuell erkennen und die Steuerelemente entsprechend ändern?

Antwort

7

I have a menubar app, und ich musste nichts tun, damit es im dunklen Thema gut aussieht.

Licht Thema:

Light theme

Dark theme:

Dark theme

Die wichtigsten Dinge, die Sie brauchen, sind zu tun:

  1. Verwenden Sie Systemfarben (z. B. [NSColor textColor], [NSColor textBackgroundColor]. Diese passen sich automatisch den verschiedenen Themen an. Weitere Informationen finden Sie im Abschnitt Color and Typography in den Apple OS X Human Interface-Richtlinien.

  2. Vorlagenbilder verwenden. Diese passen sich auch Farbänderungen an. Siehe die System-Provided Images section der Apple OS X Human Interface Guidelines.

Es ist erwähnenswert, dass Apple hat es nicht leicht gemacht, welche Farbe Thema programmatisch zu erkennen, läuft (es gibt einige Tricks, aber ich bin mir nicht bekannt, dass sanktionierte Methode). Ich habe den Eindruck, dass sie das absichtlich gemacht haben, also machen Entwickler keine benutzerdefinierten Sachen. Wenn Sie Systemfarben und Vorlagenbilder verwenden, sollten Sie dies nicht tun müssen.

Update: Beispielprojekt hier: https://github.com/zpasternack/MenuBarTest

+0

noch einige Wände hier zu treffen. Könnten Sie bitte den tatsächlichen Beispielcode angeben? Das ist seltsam, da ich einen Button mit einer Bildvorlage verwende und es im Dunkeln nicht gut aussieht, egal was ich gerade mache. – ylluminate

+0

In der Benutzeroberfläche in den obigen Screenshots gibt es grundsätzlich keinen Code. Diese Ansichten wurden in IB erstellt. Aber es gibt ein Skelett-Xcode-Projekt auf GitHub, siehe oben. – zpasternack

3

Nun, Sie haben nicht erklären (oder gezeigt), in welcher Weise es schlecht aussieht. Wahrscheinlich verwenden Sie ein normales Nicht-Template-Bild für sein Symbol. Sie sollten ein Vorlagenbild verwenden, bei dem es sich um ein Bild handelt, dessen einziger wesentlicher Teil die Alphamaske ist. Sie teilen dem System mit, dass es sich um ein Vorlagenbild handelt, indem Sie es entweder mit einem "Template" -Suffix (z. B. "FooTemplate.png") benennen oder indem Sie -setTemplate: darauf aufrufen.

Verwandte Themen