构建VillainTracker的GUI界面
1. GUI规划
在开始布局GUI之前,我们需要为控制器类中的每个GUI控件添加出口(outlet)和操作(action)。出口是一种特殊标记的实例变量,操作是一种符合特定签名的方法,它接受一个 id
类型的参数并返回 void
。在源代码中,操作的返回类型通常标记为 IBAction
,实际上 IBAction
被定义为与 void
相同,这只是为了给Interface Builder提供一个“提示”,让它知道哪些方法是操作方法。
假设我们有一个设计文档,指定了几个反派角色的属性及其类型。根据这些类型和用途,我们可以将每个属性映射到合适的GUI类,如下表所示:
| 属性名称 | 类型 | 视图类 |
| — | — | — |
| name | 字符串(自由格式) | NSTextField |
| lastKnownLocation | 字符串(自由格式) | NSTextField |
| lastSeenDate | 日期 | NSDatePicker |
| swornEnemy | 字符串(自由格式,但有现有列表可供选择) | NSComboBox |
| primaryMotivation | 字符串(来自预定义列表) | NSMatrix(包含单选按钮) |
| powers | 字符串数组(来自预定义列表) | NSMatrix(包含复选框) |
| powerSource | 字符串(来自预定义列表