在iOS 3中,此解决方法涉及创建客户UIButton并将其作为子视图添加到Apple键盘.当iOS 4发布时,子视图被添加到更改的视图.所以为了在iOS3和4中工作,我有以下内容.
-(void) addDoneButtonToNumericKeyboard {
if(doneButtonIsAdded) {
return;
}
if(doneButtonForNumericKeyboard == nil) {
doneButtonForNumericKeyboard= [[UIButton buttonWithType:UIButtonTypeCustom] retain];
doneButtonForNumericKeyboard.frame = CGRectMake(0, 163, 106, 53);
doneButtonForNumericKeyboard.adjustsImageWhenHighlighted = NO;
if ([[[UIDevice currentDevice] systemVersion] hasPrefix:@"3"]) {
[doneButtonForNumericKeyboard setImage:[UIImage imageNamed:@"DoneUp3.png"] forState:UIControlStateNormal];
[doneButtonForNumericKeyboard setImage:[UIImage imageNamed:@"DoneDown3.png"] forState:UIControlStateHighlighted];
} else {
[doneButtonForNumericKeyboard setImage:[UIImage imageNamed:@"DoneUp.png"] forState:UIControlStateNormal];
[doneButtonForNumericKeyboard setImage:[UIImage imageNamed:@"DoneDown.png"] forState:UIControlStateHighlighted];
}
[doneButtonForNumericKeyboard addTarget:self action:@selector(doneButton:) forControlEvents:UIControlEventTouchUpInside];
}
// locate keyboard view
NSArray *winArray = [[UIApplication sharedApplication] windows];
if(winArray == nil || [winArray count] < 2) {
NSLog(@"No winArray found!");
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 view found; add the custom button to it
NSLog(@"Keyboard description : %@", [keyboard description]);
if([[keyboard description] hasPrefix:@"<UIKeyboard"] == YES || [[keyboard description] hasPrefix:@"<UIPeripheralHost"] == YES) {
NSLog(@"Attaching done button");
[keyboard addSubview:doneButtonForNumericKeyboard];
doneButtonIsAdded = YES;
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何人有任何想法如何让这个适用于iOS 5?
上述两种方法都不适用于5.尝试添加似乎成功但未显示任何内容的子视图.该区域在屏幕上只是空白,并且不响应触摸.
小智 9
我也注意到了这一点,到目前为止我唯一能解决的问题就是将它keyboardWillShow:改为: to keyboardDidShow:."意志"和"确实"之间的区别显然是另一种讨论,但似乎根据我的需要修复了它.
我希望这有帮助.
我发现的更多背景是[[UIApplication sharedApplication] windows]第一个对象看起来确实存在但第二个对象在索引1处消失了.我想知道是什么造成的.
谢谢.
| 归档时间: |
|
| 查看次数: |
6186 次 |
| 最近记录: |