解雇数字垫

Sid*_*th 9 iphone objective-c interface-builder uitextfield

在我的应用程序中,我有一个文本字段,从用户输入一些数字,所以我将键盘类型设置为"数字键盘"但现在我被困在如何用户完成输入时我应该解雇它.我知道我必须使用委托方法"textfieldShouldReturn",但问题是数字键盘没有返回键.所以是否有必要在键盘上添加自定义完成键或还有其他方法?

Lud*_*uda 43

另一个解决方案 - 添加inputAccessoryView到yourNumberTextFiled

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];
}
Run Code Online (Sandbox Code Playgroud)

  • 这是最好的解决方案 (2认同)

Pur*_*lot 6

您需要添加背景点按

-(IBAction)backGroundTap:(id)sender
Run Code Online (Sandbox Code Playgroud)

在点h然后在点m文件中

-(IBAction)backGroundTap:(id)sender
[nameField resignFirstResponder];
[numberField resignFirstResponder];
Run Code Online (Sandbox Code Playgroud)

  • UITapGestureRecognizer *tapBackground = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapBackground:)]; [self.view addGestureRecognizer:tapBackground]; (2认同)