此代码在 ios 6、7、8 中运行,但在 ios 9 中调用了所有方法,但它不可见。在数字键盘上。这是我的代码。
#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<[tempWindow.subviews count]; i++) {
keyboard = [tempWindow.subviews objectAtIndex:i];
// keyboard found, add the button
if([[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES){
[keyboard addSubview:doneButton];
}
else if([[keyboard description] hasPrefix:@"<UIInputSetContainerView"] == YES){
for(int j = 0 ; j < [keyboard.subviews count] ; j++) {
UIView* hostkeyboard = [keyboard.subviews objectAtIndex:j];
if([[hostkeyboard description] hasPrefix:@"<UIInputSetHost"] == YES){
[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
然后你需要进入背景并进入前台,它会在几秒钟内可见,而不是隐藏。请帮我。谢谢你