- 最后登录
- 2010-9-1
- 麦币
- 691 枚
- 贡献度
- 524 度
- 阅读权限
- 255
- 精华
- 1
- 积分
- 3034
- 帖子
- 269
  
- 麦币
- 691 枚
- 贡献度
- 524 度
- 注册时间
- 2008-1-10
- 阅读权限
- 255
- 主题
- 10
- 精华
- 1
- 积分
- 3034
- 帖子
- 269
|
cocoa教程2 - Outlets 和 Actions (继续)
一个控制部件
- 现在进一步, 在窗口里添加下面的两个部件, 一个按钮, 一个标签:
- 这里想要做的是让下面的标签显示滑动条的指针位于左边还是右边. 要做到这个, 必须增加一些代码 (哈哈, 终于要动手写了).
- 首先要创建一个控制 "controller" 物件. 象它的名字说的那样, 这个 controller 是用来控制窗口里发生什么的. 如果想知道一些更详细的介绍, 苹果的文档是个好的阅读资料, 读读关于 MVC (Model / View / Controller), (模型 / 视图 / 控制器) 的部分. 本教程暂时不去理会这些.
在 Library 面板里点开 Cocoa 后, 选择 Objects & Controllers. 拖动一个 "NSObject" 到 MainMenu.nib 窗口里. 这是根物件 root object, 我们的 controller 物件只需从它继承一些通用的性质即可.
在 Tool 菜单里选择 Identity Inspector, 在出现的 Identity 面板里在 class 那一栏输入 "ElectricityController"
- 然后添加两个 outlets 和一个 action. Outlets 便于你在代码中访问其他部件, 它相当于函数编程里一个传递数据的指针类型参数. Actions 是一个被某个事件(比如点击一个按钮)激活的方法, 也就是本控制器可以被外界调用的一个函数.
- 添加下面的 outlets 和 actions:
- 接着, 来编写相应的代码. 因为Xcode和interface builder在这方面的同步不是很好, 我们的方法是先到Xcode里, 选择 File 菜单里的 New file, 然后在出来的窗口里选择Cocoa里面的Objective-C Class, 接下来输入 "ElectricityController.m" 作为这个新建立类的文件名, 点击 finish 结束, 在project的class一组可以看到新增加俩个代码文件. 然后回到 interface builder, 点击选择 MainMenu.nib 里的 "ElectricityController", 接着在 File 菜单里选择 write class file, 在出现的窗口里, 默认路径应该是本project的路径, 如果不是, 请选择回来. 然后点击 Save 保存. 下面会提示你要 merge 合并, 还是 replace 替换, 选择 replace.
- 现在回到Xcode, 双击打开新增加的那两个文件, 你会看到下面的代码已经在里面了.- #import <Cocoa/Cocoa.h>
- @interface ElectricityController : NSObject {
- IBOutlet id textZone;
- IBOutlet id topSlider;
- }
- - (IBAction)whereButtonAction:(id)sender;
- @end
复制代码- #import "ElectricityController.h"
- @implementation ElectricityController
- - (IBAction)whereButtonAction:(id)sender {
-
- }
- @end
复制代码 第一个是头文件, 含有这个类的定义, 第二个含有实现这个类的代码, 现在基本是空的.
- 现在回到 interface builder, 来做必要的连接, 还记得按住ctrl, 然后左键点击并拖动鼠标进行连接吗?
从 ElectricityController 到滑动条 : 选择 topSlider 这个 outlet.
从 ElectricityController 到最下面的文本标签 : 选择 textZone 这个 outlet.
从 按钮 到 ElectricityController : 选择 Received Actions 里的 whereButtonAction.
[ 本帖最后由 sweec 于 2008-1-12 12:03 编辑 ] |
|