iOS 数字输入键盘添加一个完成按钮

本文介绍了如何在iOS的数字输入键盘上添加一个完成按钮。通过监听`UIKeyboardDidShowNotification`通知并在键盘出现时添加按钮,设置按钮的位置、文字、颜色,并添加点击事件处理方法。

1.添加监听事件:

[[NSNotificationCenter defaultCenter]addObserver:self
                                            selector:@selector(addDoneButtonToNumPadKeyboard)
                                                name:UIKeyboardDidShowNotification
                                              object:nil];

2.实现方法:

- (void)addDoneButtonToNumPadKeyboard
{
    UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
    
    if ([[[[UIDevice currentDevice] systemVersion] substringToIndex:1] intValue] < 8.0)
    {
        doneButton.frame = CGRectMake(0, 163, 106, 53);
    }
    else
    {
        doneButton.frame = CGRectMake(0, ScreenHeight-53, 106, 53);
    }
    
    doneButton.tag = NUM_PAD_DONE_BUTTON_TAG;
    doneButton.adjustsImageWhenHighlighted = NO;
    [doneButton setTitle:@"完成" forState:UIControlStateNormal];
    [doneButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];
    
    NSArray *windowArr = [[UIApplication sharedApplication] windows];
    if (windowArr != nil && windowArr.count > 1){
        UIWindow *needWindow = [windowArr objectAtIndex:1];
        UIView *keyboard;
        for(int i = 0; i < [needWindow.subviews count]; i++) {
            keyboard = [needWindow.subviews objectAtIndex:i];
            NSLog(@"%@", [keyboard description]);
            if(([[keyboard description] hasPrefix:@"<UIPeripheralHostView"] == YES) || ([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES) || ([[keyboard description] hasPrefix:@"<UIInputSetContainerView"] == YES)){
                
                UIView *doneButtonView = [keyboard viewWithTag:NUM_PAD_DONE_BUTTON_TAG];
                if (doneButtonView == nil){
                    [keyboard addSubview:doneButton];
                }
            }
        }
    }
}

- (void)doneButton:(UIButton *)btn
{
    NSLog(@"keyboard......");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值