2011-02-01 2 views
5

Я новичок в какао. Я создаю проект, где у меня есть один текстовый элемент и одна кнопка. Я делаю функцию для кнопки, где я запускаю свою другую функцию, и все в порядке. Но мне нужно взять числовое значение от TextField в качестве параметра для моей функции ... как это:Получить int from textField

@implementation AppController 

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

В IB я только создать номер отформатированный текстовое поле. Но я не знаю, как назвать его из кода :(

спасибо за помощь

+0

Вы уже изучили свой синтаксис Objective-C? Довольно уверен, что '*' не должен быть там. ;) –

+0

Скорее всего -. Но да. – futureelite7

ответ

0

Вы должны быть в состоянии сделать:


int RecLine = [textField1.text intValue]; 

Это предполагает, что ваш textField1 есть что-то, что может быть конвертировано к целому числу.

+2

"textField1.текст "работает для UITextField, но не NSTextField. Если я ошибаюсь, я думаю, что это вопрос Cocoa, а не Cocoa Touch. – redhotvengeance

1

Вы создали IBOutlet для текстового поля, чтобы его можно было подключить в Interface Builder? Если нет, вам нужно добавить экземпляр текстового поля в ваш файл заголовка и сделать его синтезированным. :

 
@interface AppController 
{ 
    NSTextField *myTextField; 
} 

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

И в вашей реализации:

 
@synthesize myTextField; 

Затем в ИБ, управление кнопкой мыши перетащить из текстового поля в «файле Владелец». Появится всплывающее меню, и вы сможете подключить его к «myTextField».

Чтобы получить значение INT, вы должны быть в состоянии сделать:

 
[myTextField.stringValue intValue] 
2

вы не должны получить текстовое значение первого. NSTextField наследует от NSControl, который имеет метод intValue, так что ...

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

Вы подключили текстовое поле между вашим кодом и IB? Вам нужно будет определить Ивар и имущество в вашем объявлении @interface, как это:

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


... 
@end 

После того, как вы объявили о своем Ивар и подключениях его к текстовому полю в ИБ (поиск Google, чтобы увидеть, как), вы можете просто позвоните

[textField1.text intValue]; 

, чтобы получить целое значение строки в текстовом поле (заметьте, это быстро и грязно и не проверяет ввод).

+0

Это' NSTextField', а не 'UITextField', о котором он спрашивает. Ваш код не будет работать с бывший. –

-1

Чтобы использовать свойства, вам необходимо будет изменить базовый SDK вашего проекта на OS X 10.5 или выше. Проверьте это меню:

Project > Edit Project Settings > Build > Base SDK 

enter image description here

-1

NSString * х = self.textfield1.text;

Int recLine = [x intValue];