Возврат входных данных в поле UIText с пользовательским inputView - PullRequest
0 голосов
/ 12 июля 2010

я создал UITextField и пользовательский вид. после этого я добавил этот пользовательский вид как «inputView» в свой UITextField.

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

amountTextField.inputView = amountKeyboard.view;

[amountTextField becomeFirstResponder];

это работает довольно хорошо. но могу ли я заполнить свой "amountTextField" вводом, который нажимается в моем пользовательском представлении (кнопки UIB)?

спасибо за подсказки!

Ответы [ 2 ]

1 голос
/ 12 июля 2010

в вашем контроллере 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;

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

@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"];
}
1 голос
/ 12 июля 2010

Вы имеете в виду, что если вы нажмете 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 для всех ваших кнопок

...