MFMessageComposeViewController
半透明のキーボードでを開始しようとしています。できるだけ透明にしたいのですが、私が行った読み取りから、それを行うことは許可されていないと思います.
UIKeyboard
を作成するときにのプロパティをどのように設定しますMFMessageComposeViewController
か?
どうもありがとう!
そうしない。ドキュメントから:
重要メッセージ作成インターフェース自体はカスタマイズできないため、アプリケーションで変更しないでください。さらに、インターフェイスを表示した後、アプリケーションは SMS コンテンツにそれ以上の変更を加えることができません。ユーザーはインターフェイスを使用してコンテンツを編集できますが、プログラムによる変更は無視されます。したがって、必要に応じて、インターフェイスを表示する前にコンテンツ フィールドの値を設定する必要があります。
UIKeyboard は非公開であり、このビューのテキスト フィールドにはアクセスできないため、このインターフェイスを変更することは想定されていません。ビュー階層を介してこのテキスト フィールドにアクセスして変更しようとすると、アプリ ストアでアプリが拒否される可能性があります。
テキスト フィールドまたはテキスト ビューの keyboardAppearance プロパティを に設定するUIKeyboardAppearanceAlert
と、キーボードが透明キーボードに変更されます。
パブリック API で使用できるスタイルは 2 つだけだと聞きました。
[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)];
それがあなたの問題の解決策であることを願っています。