我正在尝试使用半透明键盘发起MFMessageComposeViewController
。我想让它像我想要的那样透明,但我认为我们不允许从我已经完成的阅读中做到这一点。
在创建UIKeyboard
时,如何设置MFMessageComposeViewController
的属性?
非常感谢!
答案 0 :(得分:4)
你没有。来自文档:
重要邮件撰写界面本身不可自定义,您的应用程序不得修改。此外,在显示界面后,您的应用程序无法对SMS内容进行进一步更改。用户可以使用界面编辑内容,但忽略编程更改。因此,如果需要,您必须在显示界面之前设置内容字段的值。
您不应该更改此界面,因为UIKeyboard是私有的,并且您无法访问此视图上的文本字段。尝试通过视图层次结构访问和修改此文本字段可能会导致您的应用在应用商店中被拒绝。
答案 1 :(得分:1)
将文本字段或文本视图的keyboardAppearance属性设置为UIKeyboardAppearanceAlert
会将键盘更改为透明键盘。
我听说公共API中只有两种样式可用:
[textView setKeyboardAppearance:UIKeyboardAppearanceAlert];
[textView setKeyboardAppearance:UIKeyboardAppearanceDefault];
但您可以使用私有API方法来检索键盘实现:
id keyboardImpl = [objc_getClass("UIKeyboardImpl") sharedInstance];
并使其不那么不透明,
[keyboardImpl setAlpha:0.8f];
色调,
UIView *tint = [[UIView alloc] initWithFrame:[keyboardImpl frame]];
[tint setBackgroundColor:[UIColor colorWithRed:0.0f green:0.0f blue:1.0f alpha:0.3f]];
[tint setUserInteractionEnabled:NO];
[[keyboardImpl superview] insertSubview:tint aboveSubview:keyboardImpl];
[tint release];
甚至翻转它:
[[keyboardImpl window] setTransform:CGAffineTransformMakeScale(-1.0f, 1.0f)];
希望这是解决问题的方法。