2013-10-28 22 views
19

對於iOS7,協議UITextInputTraits獲取枚舉的新值UIKeyboardAppearance。 我特別感興趣將keyboardAppearance更改爲UIKeyboardAppearanceDark以匹配當前的應用黑暗設計。更改整個應用程序的keyboardAppearence

我首先查看了Info.plist,但似乎沒有一個關鍵在於允許您全局設置此屬性。

我的第二個想法是使用UIAppearance,但不幸的是keyboardAppearance沒有UI_APPEARANCE_SELECTOR修飾符。 但出於某種原因這個代碼:

[[UITextField appearance] setKeyboardAppearance:UIKeyboardAppearanceDark]; 

作品上iOS7,但在崩潰iOS6的。

更詭異的是下面的代碼:

[[UITextView appearance] setKeyboardAppearance:UIKeyboardAppearanceDark]; 

不iOS7也不iOS6的工作。

一個好主意可以是創建UITextField & UITextView的子類,但以這種方式,這在UISearchBar中不起作用。

我不想創建一個類別,因爲我不想重寫Apple類的實現,可能不是未來的證明。

有人曾經處理過這個嗎?

+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

相關問題