ios8数字键盘添加完成
2014-12-25 22:44
357 查看
[[NSNotificationCenter
defaultCenter]
addObserver:self
selector:@selector(addDoneButtonToNumPadKeyboard)
name:UIKeyboardDidShowNotification
object:nil];
//注册键盘隐藏通知
[[NSNotificationCenter
defaultCenter] addObserver:self
selector:@selector(removeDoneButtonFromNumPadKeyboard)
name:UIKeyboardDidHideNotification
object:nil];
- (void)addDoneButtonToNumPadKeyboard
{
UIButton *doneButton = [UIButton
buttonWithType:UIButtonTypeCustom];
if ([[[UIDevice
currentDevice] systemVersion]
floatValue] < 8.0){
doneButton.frame =
CGRectMake(0,
163, 106,
53);
}else{
doneButton.frame =
CGRectMake(0,
self.view.frame.size.height-53,
106, 53);
}
doneButton.tag =
20;
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:20];
if (doneButtonView ==
nil){
[keyboard
addSubview:doneButton];
}
}
}
}
}
-(void)removeDoneButtonFromNumPadKeyboard
{
UIView *doneButton =
nil;
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];
if(([[keyboard description]
hasPrefix:@"<UIPeripheralHostView"] ==
YES) || ([[keyboard
description] hasPrefix:@"<UIKeyboard"] ==
YES) || ([[keyboard
description] hasPrefix:@"<UIInputSetContainerView"] ==
YES)){
doneButton = [keyboard
viewWithTag:20];
if (doneButton !=
nil){
[doneButton
removeFromSuperview];
}
}
}
}
}
defaultCenter]
addObserver:self
selector:@selector(addDoneButtonToNumPadKeyboard)
name:UIKeyboardDidShowNotification
object:nil];
//注册键盘隐藏通知
[[NSNotificationCenter
defaultCenter] addObserver:self
selector:@selector(removeDoneButtonFromNumPadKeyboard)
name:UIKeyboardDidHideNotification
object:nil];
- (void)addDoneButtonToNumPadKeyboard
{
UIButton *doneButton = [UIButton
buttonWithType:UIButtonTypeCustom];
if ([[[UIDevice
currentDevice] systemVersion]
floatValue] < 8.0){
doneButton.frame =
CGRectMake(0,
163, 106,
53);
}else{
doneButton.frame =
CGRectMake(0,
self.view.frame.size.height-53,
106, 53);
}
doneButton.tag =
20;
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:20];
if (doneButtonView ==
nil){
[keyboard
addSubview:doneButton];
}
}
}
}
}
-(void)removeDoneButtonFromNumPadKeyboard
{
UIView *doneButton =
nil;
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];
if(([[keyboard description]
hasPrefix:@"<UIPeripheralHostView"] ==
YES) || ([[keyboard
description] hasPrefix:@"<UIKeyboard"] ==
YES) || ([[keyboard
description] hasPrefix:@"<UIInputSetContainerView"] ==
YES)){
doneButton = [keyboard
viewWithTag:20];
if (doneButton !=
nil){
[doneButton
removeFromSuperview];
}
}
}
}
}
相关文章推荐
- iOS8数字键盘左下角添加完成按钮的核心代码如下:
- iOS8数字键盘左下角添加完成按钮
- ios在数字键盘左下角添加“完成”按钮的实现原理
- ios在数字键盘左下角添加“完成”按钮的实现原理
- IOS数字键盘左下角添加完成按钮的实现方法
- iOS8数字键盘加左下角完成button
- (判断第三方输入法)在系统数字键盘上添加“完成”按钮引发的问题思考
- UIKeyboardTypeNumberPad 数字键盘添加完成按钮
- 给数字键盘添加完成按钮的坑
- iOS 数字输入键盘添加一个完成按钮
- iOS8 数字键盘添加自定义按钮(兼容各个版本以及解决自定义按钮滑动出现的问题)
- ios隐藏数字键盘 --在数字键盘左下角添加“完成”按钮的实现原理
- 数字键盘添加“完成”按钮
- iOS 之给苹果自带的纯数字键盘添加完成事件
- 数字键盘添加自定义按钮
- 为数字键盘添加自定义按钮的方法(iOS所有版本适用
- UITextField清除按钮的模式、关闭自动纠错单词、关闭自动首字母大写、数字键盘上加一个完成按钮
- iOS 数字键盘完成键
- 为iphone的数字键盘添加done按键
- IOS8 ----模拟器键盘与MAC键盘切换及中文输入法键盘的添加