Iphone 是否需要为UITextField创建控制器?
刚开始使用xcode 4.2的iPhone应用程序 我知道在我的应用程序中为每个视图使用UIViewController的子类是一个很好的实践,并且我能够在这些视图中编写一些基本代码来测试相关视图上的按钮等 现在我想在这些视图中的一个文本字段上执行一些操作,假设我将使用Value Changed事件记录每次击键时文本字段的内容 我应该创建某种UITextField控制器子类吗?或者我应该在现有的ViewController子类中处理这种事情,该子类包含textfieldIphone 是否需要为UITextField创建控制器?,iphone,cocoa-touch,xcode4,xcode4.2,Iphone,Cocoa Touch,Xcode4,Xcode4.2,刚开始使用xcode 4.2的iPhone应用程序 我知道在我的应用程序中为每个视图使用UIViewController的子类是一个很好的实践,并且我能够在这些视图中编写一些基本代码来测试相关视图上的按钮等 现在我想在这些视图中的一个文本字段上执行一些操作,假设我将使用Value Changed事件记录每次击键时文本字段的内容 我应该创建某种UITextField控制器子类吗?或者我应该在现有的ViewController子类中处理这种事情,该子类包含textfield 如果是后者,如何引用视图
如果是后者,如何引用视图控制器子类中的textfield并建立连接?您将使用包含textfield的现有ViewController子类。一个好的经验法则是每个视图屏幕(不包括UINavigationController、模态屏幕、uisplitviewcontroller和popover)有一个ViewController 要引用它,您需要在自定义UIViewController的.h中创建一个属性:
@property (nonatomic,weak) IBOutlet UITextField * myTextField;
注意IBOutlet关键字。这将允许您在InterfaceBuilder(或您的故事板)中连接它。要了解如何连接,我建议您观看一段关于IBOutlets的视频,因为它更像是一个视觉化的东西。您可能希望您的
UIViewController
能够实现。可以通过界面生成器和outlets建立连接,也可以只在文本字段中设置代理,并使用从代理回调中获得的引用进行连接。非常感谢。我还可以通过将textfield声明为ivar来访问它-创建一个属性有什么特别的好处吗?属性是否用于另一个类需要访问?我喜欢将它们设置为属性,因为它更明确地定义了它们是强、弱还是赋值(尽管您也可以使用IVAR来实现这一点,并且两者都默认为强)。我有点认为一个出口是从类外访问的,因为它是在IB/故事板中设置的,但这并不一定意味着你必须这样做,因为它使用内省来设置它们。我相信苹果的最新样品已经被设置为属性,所以这是我遵循的惯例。