2011-02-01 16 views
5

Sono nuovo al cacao. Creo un progetto in cui ho un campo di testo e un pulsante. Faccio funzione per pulsante, dove inizio la mia altra funzione ed è ok. Ma ho bisogno di prendere valore numerico da textField come parametro per la mia funzione ... in questo modo:Get int da textField

@implementation AppController 

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

In IB ho solo creare il numero formattato campo di testo. Ma io non so come chiamarlo dal codice :(

grazie per aiuto

+0

Hai già imparato la sintassi Objective-C? Abbastanza sicuro che '*' non dovrebbe essere lì. ;) –

+0

Probabilmente è -. Ma si. – futureelite7

risposta

0

Si dovrebbe essere in grado di fare:


int RecLine = [textField1.text intValue]; 

Ciò presuppone il tuo campo testo 1 ha qualcosa che può essere convertito a un numero intero

+2

"textField1.text "funziona per UITextField, ma non NSTextField. A meno che non mi sbagli, penso che questa sia una domanda di Cocoa, non Cocoa Touch. – redhotvengeance

1

Avete creato un IBOutlet per il campo di testo in modo da poterlo connettere in Interface Builder? In caso contrario, è necessario aggiungere un'istanza di campo di testo al file di intestazione e renderlo una proprietà sintetizzata. :

 
@interface AppController 
{ 
    NSTextField *myTextField; 
} 

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

E nell'implementazione:

 
@synthesize myTextField; 

Poi in IB, control-click trascinamento dal campo di testo a "proprietario del file". Apparirà un menu popup e dovresti essere in grado di collegarlo a "myTextField".

Per ottenere il valore int, si dovrebbe essere in grado di fare:

 
[myTextField.stringValue intValue] 
2

non si dispone per ottenere il valore del testo prima. NSTextField eredita da NSControl che ha metodo intValue, quindi ...

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

Avete collegato il campo di testo tra il codice e IB? Sarà necessario definire l'Ivar e proprietà nella dichiarazione @interface, in questo modo:

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


... 
@end 

Dopo aver dichiarato la vostra Ivar e collegato al vostro casella di testo in IB (ricerca di Google per vedere come), è possibile è sufficiente chiamare

[textField1.text intValue]; 

per ottenere il valore intero della stringa nella casella di testo (si badi bene, questo è rapido e sporco e non convalida l'ingresso).

+0

È' NSTextField', non 'UITextField' di cui sta chiedendo. ex. –

-1

Per utilizzare le proprietà è necessario modificare l'SDK di base del progetto su OS X 10.5 o versioni successive. Controllare questo menu:

Project > Edit Project Settings > Build > Base SDK 

enter image description here

-1

NSString * x = self.textfield1.text;

Rec recLine = [x intValue];