前面学习了一个简单Hello World!如何去创建一个简单的项目和熟悉Interface Builder。
这章添加一些简单控件,和一些相关联事件。
Cocoa Touch 采用MVC(Model-View-Control)就是模型-视图-控制器。
模型-保存应用程序数据的类。 视图-窗口,控件和其他用户可以看到并能与之交互的元素。 控制器-将模型和视图绑定在一起,确定用户输入的应用程序逻辑。
控制器类可以使用一种特殊的实例变量来引用nib文件中的对象,这个变量就是输出口(outlet)。同时也可以设置nib文件中的界面对象触发控制器类中的特殊方法,这些特殊方法称为操作方法。输出口使用关键字是IBOutlet。操作使用的关键字是IBAction。
新建一个Button Fun项目
在头文件中添加相应的代码如下
@interface Button_FunViewController :UIViewController
{
UILabel *statusText;
}
@property(nonatomic,retain)IBOutletUILabel *statusText;//nonatomic来节省开销在编写IOS应用程序时常用该属性。retain通知编译器向分配给此属性的对象发送一个保留信息。确保属性底层的实例变量在使用过程中不会从内存中清除。垃圾收集时IOS当前尚未具备的Object-c2.0特性。
-(IBAction)buttonPressed:(id)sender;//buttonPressed方法名
@end
实例文件中代码如下
@synthesize statusText;
-(IBAction)buttonPressed :(id)sender
{
NSString *title=[sendertitleForState:UIControlStateNormal];//请求按钮的标题控件时,需要提供控件状态。4种正常(Normal),表示控件处于活动状态,但当前尚未使用,突出显示(highlighted)表示控件正被按住或正被使用,禁用(disabled)表示控件未启用且无法使用,已选中(selected)仅特定控件具有该状态,表示控件当前已被选中。
NSString *newText =[[NSString alloc] initWithFormat:@"%@ button pressed.",title];
//NSString *newText=[NSString stringWithFormat:@"%@ button pressed.",title];这句和上面这句的作用一样,因为这种方式使用了自动释放池,分配给自动释放的内存,在对象使用完后之后还会保留一段时间。
statusText.text=newText;
[newText release];//释放字符串
}
然后创建桌面视图如下
接下来就是连接所有元素
连接输出口 按下Control键,单击File's Owner图标并按住鼠标按钮拖向View窗口直到拖到标签上。会弹出一个菜单,选中StatusText。
指定操作在Mac上我们也是用Control拖动完成操作。但是在IPhone上主要还是主要使用连接器如下:
使用前 使用后
单击右边小圆圈拖动到File‘s Owner 会出现button pressed方法。选中后如有图所示。
然后运行。我们就完成了这个简单的连接。