一、运行效果
(每当在文本框输入数据的时候,就打印出所输入的数据)
二、代理的用处
1> 监听那些不能通过addTarget来监听的事件;
2> 主要负责在两个对象之间,发生某些事件后,来传递消息或数据;
三、代理的实现
1> 成为子控件的代理,即父控件(如:控制器)成为子控件(如:文本框)的代理;
2> 遵守协议(利用智能提示,快速编写代码);
3> 实现协议方法;
四、代理模式示意图
五、简单示例代码
1、在storyboard中拖一个文本框,然后文本框拖一条线到View Control选择delegate即可,如图:
2、代码实现
//
// ViewController.m
// 01-代理模式
//
// Created by Jarvan on 15/4/24.
// Copyright (c) 2015年 Jarvan. All rights reserved.
//
#import "ViewController.h"
// 注意:遵守协议只是为了更快的敲出代码,如果是没遵守协议,下面方法仍然在,程序还是一样可以执行!
@interface ViewController () <UITextFieldDelegate> // 遵守协议,可以command+点击<span style="font-family: Arial, Helvetica, sans-serif;">UITextFieldDelegate,可以看到事件对应的一些方法</span>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSLog(@"%@",string);
return YES;
}
@end