Return Inputs to UITextfield with custom inputView

2019-02-20 23:13发布

问题:

i created a UITextField and a custom View. after that i added this custom view as "inputView" to my UITextField.

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

amountTextField.inputView = amountKeyboard.view;

[amountTextField becomeFirstResponder];

this works quite fine. but can i fill my "amountTextField" with the input clicked in my custom View (UIButtons)?

thanks for some hints !

回答1:

in your amountTextField controller you need to write the following code in .h file

create property of your textfield

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

Now in .m file write the following

@synthesize txt;

write following statement where you create object of amountKeyboardViewController

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

Now in amountKeyboardViewController controller write the following code

@class amountTextField;       //forward declaration

then create object of this class

amountTextField *objamountTextField;

then create property of

@property(nonatomic,retain)amountTextField *objamountTextField;

Now on click of button

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


回答2:

You mean that if you press 1 then '1' should shown in textfield.

after that if you press 2 then it will show '12'.

Do you want like this?

You have to write IBaction for all buttons eg.

-(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"];
}

like that you have to write IBaction for all your buttons