系统键盘上添加 自定义按钮
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
- (void)keyboardDidShow:(NSNotification *)notification
{
UIButton * _switchNumButton = [UIButton buttonWithType:UIButtonTypeCustom];
UIView * _keyboardDefaultView = [self getSystemKeyboardView];
if (_keyboardDefaultView && [_stockTextField isFirstResponder])
{
NSLog(@"_keyboardDefaultView.frame ==%@",NSStringFromCGRect(_keyboardDefaultView.frame));
[_switchNumButton setBackgroundColor:[UIColor greenColor]];
_switchNumButton.alpha = 0.3;
_switchNumButton.frame = CGRectMake(0, 173, 38, 40);
[_switchNumButton addTarget:self action:@selector(changeCutomeButtonClicked:) forControlEvents:UIControlEventTouchUpInside];
[_keyboardDefaultView addSubview:_switchNumButton];
}
else
{
if (_switchNumButton) {
[_switchNumButton removeFromSuperview];
}
}
}
//获取系统键盘视图
- (UIView *)getSystemKeyboardView
{
UIView *returnView = nil;
UIWindow *keyboardWindow = nil;
for (UIWindow *window in [[UIApplication sharedApplication] windows])
{
if (![NSStringFromClass([window class]) isEqualToString:NSStringFromClass([UIWindow class])])
{
keyboardWindow = window;
break;
}
}
if (keyboardWindow == nil)
return nil;
for (UIView *firstView in [keyboardWindow subviews])
{
if ([[firstView description] hasPrefix:@"<UIPeripheralHostView"])
{
for (UIView *secondView in [firstView subviews])
{
if ([[secondView description] hasPrefix:@"<UIKeyboardAutomatic"])
{
returnView = secondView;
}
}
}
}
return returnView;
}