déclaration de méthode requise NSSlider (sliderDidMove) ne se trouve pas sur la documentation des développeurs d'Apple

StackOverflow https://stackoverflow.com/questions/9350319

  •  27-10-2019
  •  | 
  •  

Question

de travail sur un tutoriel avec un NSSlider.

Ce que je veux. Le déplacement du curseur affichera la valeur du curseur dans NSTextField

Tutoriel explique que la méthode suivante indique la valeur curseur dans le champ texte:

- (IBAction)sliderDidMove:(id)sender {
    NSSlider *slider = sender;
    double value = [slider doubleValue];
    [sliderValueLabel setDoubleValue:value];    
}

La méthode ne fonctionne pas si j'ai essayé de trouver la déclaration de méthode sur le site des développeurs de pommes mais n'a pas pu le trouver. De ma compréhension est la méthode: sliderDidMove une méthode de classe de la classe NSSlider alors pourquoi je suis incapable de trouver la documentation?

Était-ce utile?

La solution

Lorsque la valeur du curseur change, il envoie à son -[NSControl action] -[NSControl target]. Ainsi, dans Interface Builder, vous devez Ctrl-glisser du curseur vers l'objet qui a sliderDidMove: (qui sera probablement soit délégué App ou propriétaire du fichier). Le nom est choisi par l'auteur du tutoriel, il peut être quelque chose d'autre.

Vous pouvez le configurer par programme:

[slider setTarget:self]; // assume the handler is [self sliderDidMove:]
[slider setAction:@selector(sliderDidMove:)];

Notez également que cette tâche particulière est mieux résolu avec les fixations. Bind la valeur est à la fois curseur et l'étiquette à une propriété double d'un objet, et Cocoa les garder synchronisés

Autres conseils

Swift ...

 // Somewhere maybe in viewDidLoad ...
        slider.target = self
        slider.action = #selector(sliderDidMove)



// Later on..

func sliderDidMove(){
    print("The slider moved!")
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top