2011-04-07 19 views
14

¿Cómo adjunto un evento a NSTextField para cuando hago clic en él? ¿Hay algún ejemplo por ahí?Agregar acción de hacer clic a NSTextField

+0

Cuando el usuario hace clic en el campo de texto o cuando el usuario ingresa al campo de texto (por ejemplo, haciendo clic en él o escribiendo Tab)? –

+0

Cuando el usuario hace clic en el campo de texto. – AdamB

+0

Tome un vistazo a http://stackoverflow.com/questions/684166/which-delegate-method-i-should-use-to-respond-to-clicks-on-a-nstextfield – Ryan

Respuesta

0

El método que busca es - textShouldBeginEditing:

Usted tiene que fijar el delegado de la NSTextField, en primer lugar.

+1

¿Hay algún ejemplo que pueda ver? – AdamB

+23

'-control: textShouldBeginEditing:' no se envía cuando el usuario hace clic en el campo de texto. Se envía cuando el usuario comienza a escribir texto en el campo de texto. –

7

Puede probar esto: Funciona para mí.

@interface customTextField : NSTextField 
    @property (strong) id target; 
    @end 

    @implementation customTextField 

    - (void)mouseDown:(NSEvent *)theEvent 
    { 
     [self sendAction:@selector(clickAction:) to:[self target]]; 
    } 

    @end 

Gracias.

+0

Es mejor usar la acción del objetivo. Puede establecerlo con CTRL + arrastrar al código fuente de la acción. [self sendAction: self.action a: self.target]; – Borzh

+2

No debe copiar otras respuestas. Su fuente original es: http://stackoverflow.com/questions/9184555/click-on-nstextfield-label-to-emulate-hyperlink-to-a-folder –

+0

No copié, es coincidencia que el enlace también haya dado la misma respuesta. –

3
NSClickGestureRecognizer *click = [[NSClickGestureRecognizer alloc] initWithTarget:self action:@selector(myTextFieldClicked:)]; 
[self.myTextField addGestureRecognizer:click]; 
+0

Gran solución. No hay necesidad de subclase. – adev

+0

me gusta mucho, pero parece que no funciona para un campo de texto estático que no puede ser seleccionado o editado, realmente curioso ¿por qué? – Hofi

Cuestiones relacionadas