2017-06-25 3 views
1

Ich dachte, es wäre einfach, aber scheinbar ist es nicht. Ich habe einen NSSlider, von dem der Wert, den ich in einem Etikett anzeigen möchte, wie in diesem picture. Mit einem Setup wie in diesem picture gezeigt funktioniert es gut, mit einer Bindung takeIntValueFrom. Jetzt möchte ich über diesen Regler einen neuen UserDefaults Wert setzen:NSSlider: Wie kann man Wert und Aktion gleichzeitig senden?

@IBAction func sliderAction(_ sender: NSSlider) { 

     UserDefaults.standard.set(sliderOutlet.intValue, forKey: "sliderkey") 

     print(UserDefaults.standard.integer(forKey: "sliderkey")) 
    } 

Diese actionfunc entfernt die takeIntValueFrom -Bindung. Am Ende ist es entweder oder. Bis jetzt konnte ich keine Lösung finden, wie es funktioniert. Es wäre mir eine Freude, ein paar Ideen zu bekommen.

Antwort

1

Legen Sie den Wert des Etiketts in sliderAction fest.

Oder, für die Abenteuerlustigen, binden Sie (Bindings Inspector) den Wert des Schiebereglers und den Wert der Beschriftung zum Shared User Defaults Controller mit dem gleichen Schlüsselpfad. Die Aktion des Schiebereglers ist nicht verbunden.

+0

Vielen Dank, besonders für den zweiten Teil Ihrer Antwort. Das ist wirklich elegant. –

Verwandte Themen