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......");
}