Pregunta ¿Llamar a una función cuando un usuario presiona entrar en un NSSearchField?


Me sorprende que no pueda encontrar la respuesta a esta simple tarea. Solo quiero que el usuario escriba texto, presione enter y haga que la aplicación sepa lo que escribió. ¿Cómo haría esto?


5
2018-02-06 01:59


origen


Respuestas:


NSSearchField admite el mecanismo de destino de la acción, así que simplemente enganchelo a un objetivo / acción. Por ejemplo, suponga que tiene la siguiente acción declarada en su delegado de solicitud:

- (IBAction)searchAnswer:(id)sender;

En Interface Builder, presione la tecla ctrl y arrastre el campo de búsqueda al objeto delegado de la aplicación y elija searchAnswer: acción. En su implementación, utilizar -stringValue para obtener el texto escrito por el usuario en el campo de búsqueda, p. ej.

- (IBAction)searchAnswer:(id)sender {
    NSLog(@"search answer: %@", [searchField stringValue]);
}

Tenga en cuenta que, de forma predeterminada, el campo de búsqueda envía la acción cuando el usuario hace una pausa / deja de escribir también. Si desea que envíe la acción solo cuando el usuario escribe Ingresar, elija la Sends Whole Search String casilla de verificación en la ventana del inspector de atributos del campo de búsqueda.


16
2018-02-06 02:22