使用自定义inputView将输入返回到UITextfield

时间:2010-07-11 21:51:01

标签: objective-c iphone uiview uitextfield ios4

我创建了一个UITextField和一个自定义视图。 之后我将这个自定义视图作为“inputView”添加到我的UITextField。

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

amountTextField.inputView = amountKeyboard.view;

[amountTextField becomeFirstResponder];

这很好用。但是我可以使用在我的自定义视图(UIButtons)中单击的输入填充我的“amountTextField”吗?

感谢您的一些提示!

2 个答案:

答案 0 :(得分: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一样

答案 1 :(得分: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"];
}