2016-05-21 57 views
6

Sono nuovo nella creazione di app su Mac (Cocoa).Come implementare la modalità notte nell'applicazione Mac (Cocoa)?

Qualcuno può darmi dei suggerimenti su come posso creare una funzione di modalità notturna in un'app per Mac?

Apprezzo molto il vostro aiuto in merito.

Grazie!

+0

Cosa intendi per modalità notturna? La modalità oscura introdotta in OS X Yosemite? – mangerlahn

+0

Per modalità notturna intendo il modo in cui l'app f.lux (https://justgetflux.com/) funziona. Voglio sviluppare funzionalità simili nella mia app. – meetpd

+0

Il migliore è, inizia con l'ora del sistema e prendi questo per il calcolo per la notte. – voltae

risposta

2

Per ottenere un filtro in modalità notturna, è necessario ridurre l'esposizione alla luce blu (la luce solare contiene luce blu e ci tiene svegli e allerta).

Il modo più semplice per rimuovere la luce blu sull'intera app è utilizzare un filtro di contenuto per le visualizzazioni, nel mio caso uso il tono seppia.

Selezionare la View e andare alla sezione "View Effetti ispettore"

View Effects inspector

In filtri di contenuto, fare clic sull'icona "+" e aggiungere e scorrere fino a "Effetto colore"/"Seppia"

Content Filters

è possibile regolare il tono seppia o scegliere diversi filtri di colore per cercare di ottenere un effetto desiderato, ma ricorda l'obiettivo principale è togliere la luce blu (tono di seppia con intensità e 1 è nough).

beforeafter

Se si desidera programaticly modo per creare un filtro:

#import "ViewController.h" 
#import <CoreImage/CIFilter.h> 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    CIFilter * sepiaTone = [CIFilter filterWithName:@"CISepiaTone" keysAndValues:@"inputIntensity", @1.0, nil]; 
    self.view.contentFilters = [NSArray arrayWithObject:sepiaTone]; 

} 

di Apple Riferimento: Core Image Filters Reference

Nota: Alcune applicazioni mettere uno strato colore rosso su tutte le Visualizzazioni applicazione, ma puoi affrontare alcuni problemi con le interazioni dell'utente.