Erforderliche NSSLIDER -Methode (SliderDidMove) Erklärung
-
27-10-2019 - |
Frage
Arbeiten an einem Tutorial mit einem NSSLIDER.
Was ich will: Das Verschieben des Schiebereglers zeigt den Schieberegler in nStextfield.
Tutorial erklärt, dass die folgende Methode den Schieberegler im Textfeld zeigt:
- (IBAction)sliderDidMove:(id)sender {
NSSlider *slider = sender;
double value = [slider doubleValue];
[sliderValueLabel setDoubleValue:value];
}
Die Methode funktioniert nicht, daher habe ich versucht, die Methodenerklärung auf der Apples Developer -Website zu finden, konnte sie aber nicht finden. Nach meinem Verständnis ist die Methode: SliderDidmove Eine Klassenmethode aus der Klasse NSSLIDER. Warum also keine Dokumentation finden?
Lösung
Wenn sich der Schieberwert ändert, wird er gesendet -[NSControl action]
zu seinem -[NSControl target]
. Im Schnittstellenbuilder müssen Sie also vom Schieberegler zum Objekt, das hat sliderDidMove:
(Dies wird wahrscheinlich entweder App -Delegierter oder den Eigentümer der Datei sein). Der Name wird vom Autor des Tutorials ausgewählt, es kann alles andere sein.
Alternativ können Sie es programmgesteuert einrichten:
[slider setTarget:self]; // assume the handler is [self sliderDidMove:]
[slider setAction:@selector(sliderDidMove:)];
Beachten Sie auch, dass diese bestimmte Aufgabe besser mit Bindungen gelöst ist double
Eigenschaft eines Objekts und Kakao hält sie synchronisiert.
Andere Tipps
Im Swift
...
// Somewhere maybe in viewDidLoad ...
slider.target = self
slider.action = #selector(sliderDidMove)
// Later on..
func sliderDidMove(){
print("The slider moved!")
}