iPhone SDK NumberPad自定义inputView完成按钮

时间:2010-06-05 02:00:11

标签: iphone uitextfield uikeyboard

目前我有一个文本字段,它会拉出一个数字键盘输入。

我想要NumberPad键盘布局,但我需要一个按钮来重新响应该响应者。

有没有办法对UITextField进行编码,使其具有数字键盘键盘,键盘左侧的空格将替换为“完成”,“发送”或“转到”按钮。

或者我是否需要为UITextField创建自定义inputView?

我会想到,因为NumberPad苹果上有一个空白键会使它对某些东西有用。

3 个答案:

答案 0 :(得分:2)

尝试使用带有完成按钮的UIToolBar作为文本字段的inputAccessoryView。在按钮单击事件中提供解除键盘的代码。认为这应该适合你。

或者,如果您想在键盘上绘制自定义按钮,可以在此处搜索以获得解决方案

答案 1 :(得分:2)

如果使用phonePad,则需要空按钮。但是您可以使用“应用”和“取消”按钮添加inputAccessoryView,然后关闭数字键盘。

inputAccessoryView

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIToolbar* numberToolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
    numberToolbar.barStyle = UIBarStyleBlackTranslucent;
    numberToolbar.items = [NSArray arrayWithObjects:
                         [[UIBarButtonItem alloc]initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelNumberPad)],
                         [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil],
                         [[UIBarButtonItem alloc]initWithTitle:@"Apply" style:UIBarButtonItemStyleDone target:self action:@selector(doneWithNumberPad)],
                     nil];
    [numberToolbar sizeToFit];
    numberTextField.inputAccessoryView = numberToolbar;
}

-(void)cancelNumberPad{
    [numberTextField resignFirstResponder];
    numberTextField.text = @"";
}

-(void)doneWithNumberPad{
    NSString *numberFromTheKeyboard = numberTextField.text;
    [numberTextField resignFirstResponder];
}

答案 2 :(得分:0)

您需要立即执行自定义输入视图并将其分配给文本字段的inputview属性。我目前正在研究它,但这是正确的,经过批准的方式。虽然改变一个按钮似乎有点过分。