iPhone SDK Frage für Sie.iPhone 3.1 SDK: UIViewController Kategorie betrifft alle ViewControllers
Ich habe eine UIViewController-Kategorie erstellt, um eine Ansicht nach oben zu verschieben, wenn UITextFields bearbeitet werden und die Tastatur angezeigt wird, wodurch die Felder blockiert werden. Ich habe den Code online gefunden und zweifle nicht, dass Ihr iPhone-Gurus damit vertraut sind. Die Schnittstelle sieht wie folgt aus:
@interface UIViewController (Shiftable)
- (IBAction) textFieldDidBeginEditing:(UITextField *)textField;
- (IBAction) textFieldDidEndEditing:(UITextField *)textField;
- (void) animateTextField: (UITextField *)textField up:(BOOL)up;
@end
Mein Problem ist this-- jeder meiner UIViewControllers wird von dieser Kategorie betroffen! Ich dachte, das nur UIViewControllers beeinflussen würde, die die Kategorie importieren wie folgt:
#import "UIViewController Shiftable.h"
Aber auch UIViewControllers, die diese Kategorie nicht importiert haben, ihre Ansichten nach oben verschoben, wenn UITextFields bearbeitet werden, und natürlich einige meiner Ansichten nicht brauchen verschoben werden, wenn die Tastatur erscheint, da die Tastatur die Felder nicht verdeckt.
Ist mein Verständnis von Kategorien inkorrekt? Kann irgendjemand etwas dazu sagen?
Danke.
Alle UIViewController-Instanzen reagieren auf die in der benutzerdefinierten Kategorie hinzugefügten Methoden, unabhängig davon, ob Sie den Header mit der Kategoriedefinition importiert haben oder nicht. Das Importieren von Header wirkt sich nur auf Compiler-Warnungen über diese Methoden aus. – Vladimir
Bin gerade auf meine eigene Antwort von vor einem Jahr gestoßen ... Whoops! - Du hast natürlich Recht! –