2014-10-01 14 views
7

Sto usando NSPopover e quando cambio il colore del dock di sistema su scuro (funzione Yosemite nuova) alcuni elementi nella mia vista invertono il loro colore.Colore invertito NSPopover in colore scuro Yosemite

Ad esempio alcune etichette vengono modificate da nero a grigio oppure i campi di testo cambiano di sfondo da bianco a nero. E se ho una vista con uno sfondo bianco, ora cambia l'effetto scuro sfocato.

Quindi due domande:

  1. Posso annullare questo comportamento e forzare l'interfaccia utente di agire come in modalità normale?

  2. C'è qualche regola in cui l'elemento inverte il loro colore?

Perché sembra che alcuni elementi cambino e altri no.

Questa è la mia applicazione in modalità normale Yosemite:

enter image description here

e questo è in Yosemite modalità buio:

enter image description here

risposta

2

Ci sono modi per farlo, anche se consiglierei di abbracciarlo. Non è concretamente documentato cosa cambierà e come. Ma l'osservazione ti mostrerà cosa fare. Principalmente richiede l'opposto di optare in. L'attivazione consiste nell'utilizzare gli elementi dell'interfaccia di Appkit così come l'uso dei nomi NSColor forniti come colori di sistema e utilizzando NSVisualEffectView. Ciò significa optare esplicitamente per andare in giro e sostanzialmente personalizzare le visualizzazioni e ciò significa principalmente impostare colori espliciti e occasionalmente sottoclassi. I popover e i pannelli di stile HUD entrerebbero in funzione.

+0

I popover potrebbero essere limitati nella personalizzazione . Se l'utente attiva Riduci trasparenza nelle preferenze di Accessibilità, vedrai anche le differenze. – uchuugaka

+0

quando si verifica questo comportamento (invertito)? succederà per qualche elemento dell'interfaccia utente in qualsiasi finestra quando si passa alla modalità oscura? o solo quando sei nel popover? – Mario

+0

Modalità oscura. Ci sono NSNotification che puoi osservare per questo e cambiamenti di accessibilità. I nuovi potrebbero essere annotati solo nelle note di rilascio di AppKit per 10.10 o in un'intestazione. Ho dimenticato quale intestazione. – uchuugaka

10

Potrebbe essere una libreria che si sta utilizzando che sta causando questo comportamento Ho appena testato un nuovo progetto e non potevo rendere il NSPopover nero, non importa quanto ci provassi.

Quali librerie utilizzate? Come hai impostato il tuo NSPopover?

Forse potresti provare a cambiare la proprietà dell'aspetto della vista?

view.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];

NSView ha la proprietà appearance perché conforme alla NSAppearanceCustomization.

Vedere anche NSAppearance.

------------------------

trovato la soluzione:

self.popover.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua]; 

il risultato:

+0

Ho aggiunto una foto, come puoi vedere, lo sfondo dell'elemento diventa nero. – Mario

+0

ho aggiunto un'altra immagine della mia app senza scegliere la modalità scura di Yosemite – Mario

+0

Ho capito che funziona, quindi controlla la risposta aggiornata. – inket

Problemi correlati