2011-02-01 22 views
5

Soy nuevo en cocoa. Creo el proyecto donde tengo un textField y un botón. Hago funcionar para el botón, donde comienzo mi otra función y está bien. Pero tengo que tomar valor del número de textField como parámetro para mi función ... como esto:Obtener int de textField

@implementation AppController 

- (IBAction)StartReconstruction:(id)sender { 
    int RecLine = //here i need something like textField1.GetIntValue(); 
    drawGL(RecLine); 
} 
@end 

En IB sólo crear un número formateado campo de texto. Pero no sé cómo llamar desde el código :(

gracias por la ayuda

+0

¿Ya aprendió su sintaxis de Objective-C? Bastante seguro de que '*' no debería estar allí. ;) –

+0

Probablemente -. Pero sí. – futureelite7

Respuesta

0

Usted debe ser capaz de hacer:


int RecLine = [textField1.text intValue]; 

Esto es suponiendo que su CampoTexto1 tiene algo que se puede convertir a un número entero

+2

"textField1.text "funciona para UITextField, pero no para NSTextField. A menos que me equivoque, creo que esta es una pregunta de Cocoa, no de Cocoa Touch. – redhotvengeance

1

¿Ha creado una IBOutlet para el campo de texto para que pueda conectarla en Interface Builder? De lo contrario, debe agregar una instancia de campo de texto a su archivo de cabecera y convertirla en una propiedad sintetizada. :

 
@interface AppController 
{ 
    NSTextField *myTextField; 
} 

@property (nonatomic, retain) IBOutlet NSTextField *myTextField; 

Y en su aplicación:

 
@synthesize myTextField; 

Luego, en IB, Control y haga clic arrastre desde el campo de texto a "del propietario del archivo". Aparecerá un menú emergente y podrá conectarlo a "myTextField".

para obtener el valor int, usted debe ser capaz de hacer:

 
[myTextField.stringValue intValue] 
2

usted no tiene que obtener el valor de texto en primer lugar. NSTextField hereda de NSControl que tiene intValue método, así que ...

-(IBAction)buttonClicked:(id)sender 
{ 
    int intVal = [textField intValue]; 
    NSLog (@"Int value is %i", intVal); 
} 
3

¿Ha conectado el campo de texto entre su código y IB? Tendrá que definir el Ivar y propiedad en su declaración @interface, así:

@interface BlahBlah { 
    UITextField *textField1; 
} 
@property (nonatomic, retain) IBOutlet UITextField *textField1; 


... 
@end 

Después de haber declarado su Ivar y conectarlo a la caja de texto en IB (búsqueda en Google para ver cómo), puede simplemente llame

[textField1.text intValue]; 

para obtener el valor entero de la cadena en el cuadro de texto (te importa, esto es rápido y sucio y no valida la entrada).

+0

Es' NSTextField', no 'UITextField' sobre el que pregunta. Tu código no funcionará con el ex. –

-1

Para utilizar las propiedades, deberá cambiar el SDK base de su proyecto a OS X 10.5 o superior. Compruebe este menú:

Project > Edit Project Settings > Build > Base SDK 

enter image description here

-1

NSString * x = self.textfield1.text;

Int recLine = [x intValue];