2013-01-31 32 views
4

我目前正試圖設置全局的鍵盤樣式,但我的方法不起作用。 我嘗試了用UIAppearance,並把此行的代碼的AppDelegate裏面:如何爲整個應用程序設置UIKeyboard風格?

[[UITextField appearance] setKeyboardAppearance:UIKeyboardAppearanceAlert]; 

但我在控制檯上得到如下:

[UISearchBarTextField _UIAppearance_setKeyboardAppearance:]: unrecognized selector sent to instance 0xa1897e0 

任何想法如何解決這個問題?

+0

您是否找到解決方案? – BlueVoodoo

回答

2

UIAppearance只適用於使用宏UI_APPEARANCE_SELECTOR明確標記的方法兼容,不幸的是keyboardAppearance不是其中之一。

最好的方式來得到你想要的是繼承UITextField,並在子類的initinitWithFrame:方法來設置keyboardAppearance = UIKeyboardAppearanceAlert;。然後專門使用您的班級,無論您在應用中使用UITextField

7

iOS7擴展了UIAppearance協議的UITextFields,你可以在UITextField上設置現在的鍵盤外觀。

[UITextField appearance].keyboardAppearance = UIKeyboardAppearanceDark; 

但是,UITextView不支持它。對於這門課程,我會選擇jszumski的解決方案

+0

'UITextView'適用於iOS8。 – yuhua

+0

我最近嘗試過,它不起作用(iOS 8.2)。至少,結合表格視圖 – tubtub

+0

是的!它可能會導致崩潰,但你仍然可以直接設置爲textview'textView.keyboardAppearance = UIKeyboardAppearanceDark;' – yuhua

相關問題