HelloWorld,开发入门!
Mac OS X 10.7.2
Xcode4.2
拖放一个文本框和一个按钮到MainStoryboard_iPhone.storyboard上
2.1、映射文本框,以在代码中可以引用它
右击文本框,拖放其中的“New Referencing Outlet”的右边的小圈圈至ViewController.h放开。在弹出的对话框中设置文本框的名字为“txtName”。
完成后,会在
ViewController.h文件中生成以下代码:
@property (weak, nonatomic) IBOutlet UITextField *txtName;
ViewController.m文件中生成以下代码:
@synthesize txtName;
2.2、映射按钮的点击事件
右击按钮,拖放其中的“Touch Up Inside”右边的小圈圈至ViewController.h放开。在弹出的对话框中设置事件处理方法的名字为“buttonClicked”。
完成后,会在
ViewController.m文件中生成以下代码:
- (IBAction)buttonClicked:(id)sender { }
打开ViewController.m文件,找到在2.2步骤中生成的按钮点击事件处理方法,在里面写引用文本框的文本弹出对话框的代码。
- (IBAction)buttonClicked:(id)sender { UIAlertView* alert=[[UIAlertView alloc] initWithTitle:@"hello" message:txtName.text delegate:self cancelButtonTitle:@"退出" otherButtonTitles: nil]; [alert show]; }
这两个都是只为开发环境(Xcode)提供的宏标记,定义如下:
#define IBAction void
#define IBOutlet
可以看到,IBOutlet除了告诉Interface Builder此变量可以被映射到界面上的控件外没有额外的作用,而IBAction除了告诉Interface Builder此变量可以被映射到界面上的控件的某事件作为其处理方法外也定义此函数无返回值(事件处理方法本来就应该无返回值)。
两者配合使用,目的是让编译好器自动编写一个与数据成员同名的方法。前者用于在.h头文件中做方法声明,而后者即为实现。