2013-09-26 3 views
5

Gibt es eine nützliche Eigenschaft in einem Cocoa-Touch-Projekt, das die einzige und einheitliche Art des Aussehens der Tastatur in der App festlegen würde? Sage ich möchte UIKeyboardAppearanceAlert auf alle TextFields und TextViews, die ich in meiner App habe, ohne direkt etwas zu ändern. Ist das möglich?Set UIKeyboardAppearance über die ganze App

Antwort

8

Nein, das ist nicht möglich. Das keyboardAppearance ist Teil des Protokolls UITextInputTraits und ist nicht als UIAppearance-Methode gekennzeichnet. Wenn es könnten Sie so etwas wie:

[[UITextField appearance] setKeyboardAppearance:UIKeyboardAppearanceAlert]; 

Sie Methoden identifizieren können, die durch einen Blick auf der Dokumentation mit dem Erscheinen Proxy verwendet werden kann, oder, im Code, an dem UIKit Header (Befehl-Klick auf einem . Verfahren und es wird Sie in den Header nehmen

zum Beispiel in UINavigationBar.h, können Sie dies sehen:.

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

der Marker UI_APPEARANCE_SELECTOR bedeutet, dass diese Eigenschaft auf das Aussehen Proxy verwendet werden, es ist nicht anwesend auf keyboardAppearance, und es sieht nicht so aus, als könnten irgendwelche Schlüssel in der Datei info.plist ein anwendungsweites Aussehen definieren.

Ihre beste Wette ist, Unterklasse Textfield und Textview und verwenden Sie diese Unterklassen überall.

+9

Eigentlich auf iOS7, wenn Sie rufen '[[UITextField Aussehen] setKeyboardAppearance: UIKeyboardAppearanceDark];' es funktioniert, auch wenn die Eigenschaft keine UI_APPEARANCE_SELECTOR Dekorator –

+4

Lucas Code arbeitete für mich mit UITextField, aber meine App abgestürzt, als ich es versuchte das Gleiche mit UITextView. – arlomedia