2010-07-11 2 views
0

Я создал UITextField и пользовательский вид. после этого я добавил это пользовательское представление как «inputView» в свой UITextField.Возврат Входы в UITextfield с пользовательским inputView

amountKeyboardViewController *amountKeyboard = [[amountKeyboardViewController alloc] initWithNibName:@"amountKeyboardViewController" bundle:nil]; 

amountTextField.inputView = amountKeyboard.view; 

[amountTextField becomeFirstResponder]; 

это работает в полном порядке. но могу ли я заполнить свой «amountTextField» с помощью ввода, нажатого в моем обычном представлении (UIButtons)?

спасибо за некоторые подсказки!

ответ

1

в контроллере amountTextField вам необходимо написать следующий код в файле .h

свойство создания вашего текстового поля

@property(nonatomic,retain)UiTextField *txt; //whatever your textfield name 

Теперь в .m файле напишите

@synthesize txt; 

написать следующее заявление, где вы создаете объект amountKeyboardViewController

amountKeyboardViewController *amountKeyboard = [[amountKeyboardViewController alloc] initWithNibName:@"amountKeyboardViewController" bundle:nil] 
amountKeyboard.objamountTextField = self; 

Теперь в контроллере amountKeyboardViewController написать следующий код

@class amountTextField;  //forward declaration 

затем создать объект этого класса

amountTextField *objamountTextField; 

затем создать имущество

@property(nonatomic,retain)amountTextField *objamountTextField; 

Теперь по нажатию кнопки

-(IBAction)clickof1 
{ 
    if([amountTextField.text length] <= 0) 
     objamountTextField.txt.text = @"1"; 
    else 
     objamountTextField.txt.text=[objamountTextField.txt.text stringByAppendingString:@"1"]; 
} 
+0

Я попробую сегодня вечером и приму ваш ответ, если он будет работать. спасибо за вашу большую поддержку. две вещи: «amountTextField controller», вы имеете в виду мой контроллер представления, где myTextField задан как переменная экземпляра? 'amountKeyboard.objamountTextField = self;' можете ли вы дать мне краткое объяснение этому? – choise

+0

Да, контроллер amountTextField означает ваш контроллер просмотра, где установлено значение amountTextField. В классе amountKeyboardViewController вы можете увидеть, что я создал объект amountTextField, а также создаю свойство, поэтому нам нужно установить этот объект – Reena

+0

, который я полностью понимаю. благодаря :) – choise

1

Вы имеете в виду, что если вы нажмете 1, то в текстовом поле должно появиться «1».

после этого, если вы нажмете 2, он отобразит «12».

Вы хотите как это?

Вы должны написать IBaction для всех кнопок например.

-(IBAction)clickof1 
{ 
    if([amountTextField.text length] <= 0) 
     amountTextField.text = @"1"; 
    else 
     amountTextField.text = [amountTextField.text stringByAppendingString:@"1"]; 
} 

-(IBAction)clickof2 
{ 
    if([amountTextField.text length] <= 0) 
     amountTextField.text = @"2"; 
    else 
     amountTextField.text = [amountTextField.text stringByAppendingString:@"2"]; 
} 

как, что вы должны написать IBAction для всех кнопок

+0

да я думал об этом, но: моих действиях в моем amountKeyboardViewController и не в моем контроллере, где создаются мое текстовое поле. также, что, если я хочу использовать эту клавиатуру в другом месте? мне всегда приходится писать все мои действия для каждого текстового поля? – choise

+0

вам нужно создать свойство вашего текстового поля, и вы можете получить доступ к этому из класса amountKeyboardViewController, используя форвардное объявление, и вы можете установить значение – Reena

+0

. О, пожалуйста, можете ли вы дать мне быстрый пример кода об этой «прямой декларации» в вашем сообщении выше? google stuff выглядит странно – choise

Смежные вопросы