事件的响应和对象的引用——outlet和action

什么是outlet:

outlet实际上时对控件对象的引用。
不像Android开发,你拖一控件到可视化设计器上,IDE自然会帮你在layout文件上添加一个该控件的标签。
然后你就可以操作该对象。
xcode不会这么做,当你拖一个控件(如Label)到storyboard上,你只能看见它,不能对它进行操作。
这个时候的Label对象就像一个无人认领的孤儿,你想对它进行操作,就必须向outlet求助。
如前所述,我想操作label对象,我就需要定义一个label的outlet变量。
声明一个outlet对象需要使用关键字IBOutlet
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
{
    IBOutlet UILabel *lable;
}

@property (nonatomic) UILabel *lable;

@end

声明完后我们还需要在实现文件中合成变量。(什么是合成?)不懂的先看看objective-c的教程
这些步骤都完成后,最重要的一步就是将定义好的outlet变量链接到storyboard上的label对象。
如图:



链接好后就可以对它进行操作了:
当我点击click to change the text按钮,就可以改变该label控件的值了。

什么是Action:

上面我说当我点击click to change the text按钮,就可以改变该label控件的值,那么这又是如何做到的呢?
这就是action要完成的工作————响应用户行为(如点击动作等)。
action实际上是一个方法(也可以说是一个函数),基本上工作原理和Android的setOnClickListener差不多,
就是监听用户行为,对这些行为作出响应。
当然,这个行为由谁触发,这个必须由你自己指出(如何指出?这只是简单的连接过程)

链接Action到按钮

当然,运行程序之前,你必须实现好这个方法(返回值必须是IBAction)

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

@synthesize lable;
- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

-(IBAction)clickChangeLabel:(id)sender
{
    [lable setText:@"Hello iPhone"];
}

@end




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值