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?

War es hilfreich?

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!")
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top