2015-04-04 26 views
29

Sto lavorando a un'app che ha una NSView personalizzata su un NSStatusBar che esegue tutto il disegno quando l'utente fa clic su di esso. Ma ecco il problema, il colore che sto attualmente disegnando in quanto il colore di sfondo della vista non è lo stesso del colore blu del sistema.Come accedere alla voce di menu selezionata del sistema di colore blu?

colore della mia app:
enter image description here

di Twitter colore voce di menu (sistema):
enter image description here

Come si vede chiaramente, il mio colore blu è il modo più leggero del sistema. Questo è il codice Attualmente sto usando (e funzionava perfettamente sulle versioni precedenti alla Yosemite):

[[NSColor selectedMenuItemColor] set]; 
NSRectFill(rect); 

Ho anche provato il colore raccogliendo il colore della voce di menu, ma sembra che il colore è influenzata dalla carta da parati in basso la barra dei menu.
Qualche idea su come ottenere l'aspetto del sistema?

+0

Sei sicuro che Twitter stia usando 'selectedMenuItemColor'? Forse usano qualcosa di diverso? – Eun

+0

Stavo solo mostrando un esempio che utilizza il colore di sistema per gli elementi della barra dei menu selezionati, e twitter utilizza lo stesso colore degli altri widget incorporati, come Wi-Fi e batteria. Ho usato 'selectedMenuItemColor' su vecchie versioni di OS X e ho sempre funzionato come previsto, non su Yosemite. –

risposta

6

Come hai detto tu, in Yosemite, banchine, barre di stato, ecc. Sono influenzate da ciò che è dietro di loro. Prova a abilitare lo System Preferences > Accessibility > Display > Reduce Transparency e vedrai come si presenta il tuo colore senza questa funzione./

+0

Sembra un'ottima idea, ma sfortunatamente non funziona. Quando lo accendo di nuovo, i colori sono lontani. –

+0

intendevo dire, spegnilo * off * (ridurre la trasparenza) –