
60
|
第
2
章
此外,
UIViewController
需要负责对来自子视图中的事件进行处理,对这些控件
进行操作并改变它们的状态。
这一切需要通过
Outlet
和
Action
进行
。一个
Outlet
是
UIViewController
的一个
属性,它代表了一个视图或者控件。当
viewDidLoad
被调用后,每个
Outlet
属性都
会和视图上的一个对象关联起来。我们可以像访问一般的属性一样访问它们。
要定义一个
Outlet
,我们需要用关键字
IBOutlet
来声明一个属性,例如:
@IBOutlet weak var textField: UITextField!
Action
是一个方法,当用户与屏幕上的控件进行交互时这个方法会被调用。例如,
当我们想知道何时一个按钮被用户按下时,我们可以创建一个
Action
方法,然后
将这个方法和按钮关联起来。我们可以为控件的各种事件创建
Action
,例如文本框
的文本内容发生改变,或者滑块位置被移动等。
Action
方法在类的
@interface
中定义,例如:
@IBAction func buttonPressed(_ sender: AnyObject) {
注意,
IBAction
并不是真正的返回类型,
IBAction
实际上是
void
的别名。
Xcode
只是使用
IBAction
关键字来表示一个方法可以和
IB
中的某个视图关联在一起。
接下来,这个
Action
声明了一个参数:一个
sender
对象。这个对象代表了调用
Action
方法的对象:被触摸的按钮对象,或者正在接受输入的文本框等。 ...