Declaración del método NSSLider requerido (SliderDidMove) que no se encuentra en la documentación del desarrollador de Apple

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

  •  27-10-2019
  •  | 
  •  

Pregunta

Trabajando en un tutorial con un NSSLider.

Lo que quiero: mover el control deslizante mostrará un valor deslizante en nstextfield.

El tutorial explica que el siguiente método mostrará el valor del control deslizante en el campo de texto:

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

El método no funciona, así que intenté encontrar la declaración del método en el sitio web del desarrollador de manzanas, pero no pude encontrarla. Según tengo entendido, el método: SliderDidMove Un método de clase de la clase NSSLider, ¿por qué no puedo encontrar ninguna documentación?

¿Fue útil?

Solución

Cuando cambia el valor del control deslizante, envía -[NSControl action] a su -[NSControl target]. Entonces, en Interface Builder, necesita CTRL-Drag desde el control deslizante hasta el objeto que tiene sliderDidMove: (Ese probablemente será delegado de aplicaciones o propietario del archivo). El nombre es elegido por el autor del tutorial, puede ser cualquier otra cosa.

Alternativamente, puede configurarlo programáticamente:

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

Tenga en cuenta también que esta tarea en particular se resuelve mejor con los enlaces: vincule el valor de los controles deslizantes y la etiqueta a un double propiedad de algún objeto, y el cacao los mantendrá sincronizados.

Otros consejos

En Swift ...

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



// Later on..

func sliderDidMove(){
    print("The slider moved!")
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top