2013-09-26 6 views
5

Czy istnieje przydatna właściwość w projekcie dotykowym kakao, która pozwoliłaby ustawić spójny styl wyglądu klawiatury w aplikacji? Załóżmy, że chcę UIKeyboardAppearanceAlert we wszystkich elementach textFields i textViews, które mam w mojej aplikacji, bez bezpośredniej modyfikacji niczego. Czy to możliwe?Zestaw UIKeyboardAppearance w całej aplikacji

Odpowiedz

8

Nie, to niemożliwe. Interfejs keyboardAppearance jest częścią protokołu UITextInputTraits i nie jest oznaczany jako metoda UIAppmentance. Gdyby to było można zrobić coś takiego:

[[UITextField appearance] setKeyboardAppearance:UIKeyboardAppearanceAlert]; 

Możesz określić metody, które mogą być używane z prokurentem wygląd patrząc na docs lub od wewnątrz kodu, w nagłówkach UIKit (komenda kliknięcie na . Sposób i potrwa do nagłówka

na przykład w UINavigationBar.h można zobaczyć.

@property(nonatomic,retain) UIColor *barTintColor NS_AVAILABLE_IOS(7_0) UI_APPEARANCE_SELECTOR; // default is nil 

znacznik UI_APPEARANCE_SELECTOR oznacza, że ​​nieruchomość może być używana na serwerze proxy wygląd to nie występuje na keyboardAppearance, i nie wygląda na to, że klawisze w pliku info.plist pozwalają zdefiniować wygląd całej aplikacji.

Najlepiej jest podklasnąć pole tekstowe i widok tekstowy i korzystać z tych podklas wszędzie.

+9

Właściwie na iOS7 jeśli zadzwonisz '[[UITextField wygląd] setKeyboardAppearance: UIKeyboardAppearanceDark];' to działa, nawet jeżeli nieruchomość ma UI_APPEARANCE_SELECTOR dekorator –

+4

kod Luca pracował dla mnie z UITextField, ale moja aplikacja rozbił się, gdy próbowałem zrobić to samo z UITextView. – arlomedia