2011-01-11 11 views
16

He intentado varios métodos, que todos me dan advertencias. Tal como userName = [NSString stringWithFormat:@"%@", [yournamefield stringValue]]; la que sólo me da una advertencia de¿Cómo obtengo el texto de UITextField en un NSString?

'UITextField' no puede responder a '-stringValue'

¿Cómo puedo hacer esto?

+0

http://developer.apple.com/library/ios/#documentation/uikit/ referencia/UITextField_Class/referencia/UITextField.html # // apple_ref/doc/uid/TP40006888 – filipe

+0

'-stringValue' es un método de' NSTextField' – NSGod

Respuesta

39

obtener el texto dentro del campo de texto utilizando la propiedad text

NSString *name = yourNameField.text; 
+0

No! No ** use ** el método de acceso para algo que se define explícitamente como una propiedad en el encabezado público. – PeyloW

+0

@PeyloW ¿Puedo preguntar rápidamente por qué no se debe hacer esto? ¿No es eso lo que está haciendo una propiedad, generando accesadores? ¿El tiempo de ejecución no convertirá la sintaxis de punto a la sintaxis de acceso? –

+0

@MattM: Sí, es lo que la aplicación está haciendo, pero sólo se debe pensar en que, como un detalle de implementación y un efecto secundario de la compatibilidad hacia atrás con Objective-C 1.0. Las propiedades están pensadas para ** estado **, y los métodos son para ** comportamiento **. Se compila el acceso a una propiedad como método, pero su código indica claramente que no comprende la intención de la API. – PeyloW

1

¿Qué tal:

userName = [NSString stringWithFormat:@"%@", yournamefield.text]; 
+0

¿Por qué usar 'stringWithFormat:' if la cadena el único contenido de la cadena de formato – PeyloW

+0

No hay razón - que era un cambio rápido de su puesto original :). – badgerr

12

utilizar la propiedad text de UITextField:

NSString *userName = yourNameField.text; 
1

dos maneras. Es una propiedad ya todo el valor de la propiedad se puede acceder como esto -

  • yournamefield.text
  • [yournamefield text]
Cuestiones relacionadas