2013-10-28 16 views
19

iOS7の場合、UITextInputTraitsプロトコルはenum UIKeyboardAppearanceの新しい値を取得します。 特に、現在のアプリの暗いデザインと一致させるために、keyboardAppearanceUIKeyboardAppearanceDarkに変更することに興味があります。キーボード全体の変更アプリケーション全体のアプリケーション

私はまずInfo.plistを調べましたが、このプロパティをグローバルに設定できるキーがないようです。

私の考えはUIAppearanceですが、残念ながらkeyboardAppearanceにはUI_APPEARANCE_SELECTORデコレータがありません。 しかし、いくつかの理由のため、このコード:iOS6で

[[UITextField appearance] setKeyboardAppearance:UIKeyboardAppearanceDark]; 

iOS7に動作しますが、クラッシュします。

はさらに奇妙次のコード:

[[UITextView appearance] setKeyboardAppearance:UIKeyboardAppearanceDark]; 

はiOS7もiOS6では動作しません。

UITextField & UITextViewの両方のサブクラスを作成することをお勧めしますが、この方法ではUISearchBarなどでは機能しません。

アップルクラスの実装をソートオーバーライドしたくないので、カテゴリを作成したくないと思います。

誰でもこれを処理しましたか?

+1

は見えません:(http://stackoverflow.com/a/19032824/484780 –

+0

を、私はこのための小分類を作成した。すぐに掲載する予定です。共有のための –

答えて

5

使用主にキーボード&テキストフィールドが、あなたの問題の間の距離を管理するために使用される https://github.com/hackiftekhar/IQKeyboardManager

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [[IQKeyboardManager sharedManager] setOverrideKeyboardAppearance:YES]; 
    [[IQKeyboardManager sharedManager] setKeyboardAppearance:UIKeyboardAppearanceDark]; 
    return YES; 
} 

この制御は、この偉大なライブラリを経由して解決することができます。それが可能だよう

+0

おかげで、これは良いものです、私のアプリのキーボードの外観を変えたいと思っていたので、私のために働いていましたが、実際には以前はUIViewに画像を貼り付けて自分のキーボードを作成してみましたが、 – chathuram

関連する問題