有没有办法获得黑色键盘?默认的是蓝色的。警报风格一个是半透明的黑色。我想知道键盘是否可能是黑色的,例如不透明。或者我是否必须在键盘后面拉出黑色视图以降低透明度效果?
答案 0 :(得分:13)
简短的回答是,不。您可以显示的唯一两个键盘是普通和警报样式键盘。
有很多方法可以破解,获取ui键盘并改变它的构图。我不建议这样做,因为它会1)可能会让你的应用程序从应用程序商店中被拒绝,2)可能在下次iOS版本出现时中断。
似乎在键盘后面放置黑色或白色视图应该适用于应用程序。在这种情况下,我建议您查看here,以便在键盘下方为黑色视图设置动画。
答案 1 :(得分:4)
如上所述,您可以使用以下两个值中的一个:
[textView setKeyboardAppearance:UIKeyboardAppearanceAlert];
[textView setKeyboardAppearance:UIKeyboardAppearanceDefault];
答案 2 :(得分:4)
以下是隐藏UIKeyboard
背景的代码。随意修改它以着色UIKeyboard
:
-(NSArray*)subviewsOfView:(UIView*)view withType:(NSString*)type{
NSString *prefix = [NSString stringWithFormat:@"<%@",type];
NSMutableArray *subviewArray = [NSMutableArray array];
for (UIView *subview in view.subviews) {
NSArray *tempArray = [self subviewsOfView:subview withType:type];
for (UIView *view in tempArray) {
[subviewArray addObject:view];
}
}
if ([[view description]hasPrefix:prefix]) {
[subviewArray addObject:view];
}
return [NSArray arrayWithArray:subviewArray];
}
-(void)removeKeyboardBackground{
for (UIWindow *keyboardWindow in [[UIApplication sharedApplication] windows]) {
for (UIView *keyboard in [keyboardWindow subviews]) {
for (UIView *view in [self subviewsOfView:keyboard withType:@"UIKBBackgroundView"]) {
view.hidden=YES;
}
}
}
}
收到[self removeKeyboardBackground]
NSNotification
后,请致电UIKeyboardDidShowNotification
。通过将view.hidden=YES;
替换为您想要的任何内容,在背景视图中执行任何操作。