this code is working in ios 6,7,8 but this all method is called in ios 9 but it is not visible. on number pad. here is my code.
#import "ViewController.h"
#define TAG_BUTTON_DONE 67125
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidShow:) name:UIKeyboardDidShowNotification object:nil];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)keyboardDidShow:(NSNotification *)note {
[self addButtonToKeyboard];
}
- (void)addButtonToKeyboard{
//NSLog(@"addButtonToKeyboard");
//jenish
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
// create custom button
UIButton *doneButton = [UIButton buttonWithType:UIButtonTypeCustom];
doneButton.frame = CGRectMake(0, 163, 106, 53);
doneButton.adjustsImageWhenHighlighted = NO;
[doneButton setTag:TAG_BUTTON_DONE];
//[doneButton setImage:[UIImage imageNamed:@"doneup.png"] forState:UIControlStateNormal];
//[doneButton setImage:[UIImage imageNamed:@"donedown.png"] forState:UIControlStateHighlighted];
[doneButton setTitle:@"Done" forState:UIControlStateNormal];
[doneButton setTintColor:[UIColor blackColor]];
[doneButton addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];
// locate keyboard view
int windowCount = (int)[[[UIApplication sharedApplication] windows] count];
if (windowCount < 2) {
return;
}
UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
UIView* keyboard;
for(int i=0; i
keyboard = [tempWindow.subviews objectAtIndex:i];
// keyboard found, add the button
if([[keyboard description] hasPrefix:@"
[keyboard addSubview:doneButton];
}
else if([[keyboard description] hasPrefix:@"
for(int j = 0 ; j < [keyboard.subviews count] ; j++) {
UIView* hostkeyboard = [keyboard.subviews objectAtIndex:j];
if([[hostkeyboard description] hasPrefix:@"
[hostkeyboard addSubview:doneButton ];
[hostkeyboard bringSubviewToFront:doneButton];
}
}
}
else
{
dispatch_async(dispatch_get_main_queue(), ^{
[keyboard addSubview:doneButton];
});
}
}
}
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch * touch = [touches anyObject];
if(touch.phase == UITouchPhaseBegan) {
[self.tf resignFirstResponder];
}
}
@end
then you need to go background and come on fore ground it will visible for few second than it will go hide. please help me.
thank you
解决方案
Change
UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] objectAtIndex:1];
To :
UIWindow* tempWindow = [[[UIApplication sharedApplication] windows] lastObject];