iPhone 3.1 SDK:UIViewController类别正在影响所有ViewControllers

Die*_*cia 5 iphone objective-c categories iphone-sdk-3.0

iPhone SDK问题给你.

我创建了一个UIViewController类,当编辑UITextFields并出现键盘时,移动视图,阻止字段.我在网上找到了代码,毫无疑问你对iPhone大师很熟悉.界面如下所示:

@interface UIViewController (Shiftable) 

      - (IBAction) textFieldDidBeginEditing:(UITextField *)textField;

      - (IBAction) textFieldDidEndEditing:(UITextField *)textField;

      - (void) animateTextField: (UITextField *)textField up:(BOOL)up;

@end
Run Code Online (Sandbox Code Playgroud)

我的问题是这个 - 我的每个UIViewControllers都受到这个类别的影响!我认为这只会影响导入类别的UIViewControllers,如下所示:

 #import "UIViewController Shiftable.h"
Run Code Online (Sandbox Code Playgroud)

但是,即使是不导入此类别的UIViewControllers,当编辑UITextField时,它们的视图也会向上移动,当然,当键盘出现时我的某些视图不需要移动,因为键盘不会隐藏字段.

我对类别的理解不正确吗?任何人都可以对此有所了解吗?

谢谢.

Vla*_*mir 8

不,这就是类别的工作方式 - 如果您向类添加一些方法,那么所有这些更改将在运行时期间用于该类的所有实例.