***********取消按钮的监听和设置代理textField字数限制 UITextFieldDelegate

#import "HMViewController.h"
@interface HMViewController () <UITextFieldDelegate>
@end @implementation HMViewController /**
1> UIButton -> UIControl -> UIView 1.1 设置控件的状态 启用、禁用
@property(nonatomic,getter=isEnabled) BOOL enabled;
选中、不选中
@property(nonatomic,getter=isSelected) BOOL selected;
高亮或者不高亮
@property(nonatomic,getter=isHighlighted) BOOL highlighted; 1.2 设置控件内容的布局
垂直居中方向
@property(nonatomic) UIControlContentVerticalAlignment contentVerticalAlignment;
水平居中方向
@property(nonatomic) UIControlContentHorizontalAlignment contentHorizontalAlignment; 1.3 添加/删除监听方法
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
- (void)removeTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents; 2> UILabel -> UIView
3> UIImageView -> UIView
4> UITextField -> UIControl *** 代理设计模式,在OC中,使用最为广泛的一种设计模式 1> 代理的用处是什么?
* 监听那些不能通过addTarget监听的事件!
* 主要用来负责在两个对象之间,发生某些事件时,来传递消息或者数据 2> 代理的实现步骤
(1) 成为(子)控件的代理,父亲(控制器)成为儿子(文本框)的代理
(2) 遵守协议->利用智能提示,快速编写代码
(3) 实现协议方法
*/
- (void)viewDidLoad
{
[super viewDidLoad]; UIButton *btn = [UIButton buttonWithType:UIButtonTypeContactAdd];
btn.center = self.view.center;
[self.view addSubview:btn]; // 将监听方法,注册到"运行循环",当按钮被点击后,"运行循环"通知视图控制器执行@selector的方法
[btn addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside]; } - (void)click:(UIButton *)btn
{
NSLog(@"%s", __func__); [btn removeTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
} #pragma mark - 文本框代理方法
/**
成为代理之后要做的事情,以及如何工作 1> 协议:预先定义的一些方法名,每个方法对应不同的事件,但是没有具体的实现 */
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSLog(@"%@ %@", NSStringFromRange(range), string); // 限制输入的长度
int loc = range.location;
return (loc < ); // if (loc < 6) {
// return YES;
// } else {
// return NO;
// } // 如果返回NO,就不向文本框中添加字符
// return YES;
}
@end

最新文章

  1. 7、ASP.NET MVC入门到精通——第一个ASP.NET MVC程序
  2. css3整理--filter
  3. 转 android launch flow
  4. JSP编程-步步为营
  5. 自己写jstl标签解析long时间
  6. 转: seajs手册与文档之--模块定义
  7. 百度BAE环境搭建
  8. 龙尚 U9300C wvdial 拨号上网
  9. 生成缓存文件cache file
  10. MySQL:explain 和 慢查询日志
  11. Django Rest Framework-介绍
  12. MySQ数据表设计
  13. 记录Linux中遇到的技巧
  14. &quot; XSS易容术---bypass之编码混淆篇+辅助脚本编写&quot;
  15. MT【202】内准圆
  16. mysql备份参数--master-data和--dump-slave的介绍
  17. [转]网易云音乐Android版使用的开源组件
  18. 深入理解java集合框架之---------Arraylist集合 -----添加方法
  19. web微信开发总结
  20. js百度地图-简单的1个坐标点

热门文章

  1. Python网络编程(4)——异步编程select &amp; epoll
  2. 【读书笔记】读《JavaScript高级程序设计-第2版》 - 非函数部分
  3. Java之IO操作总结
  4. jar包和war包的区别
  5. Redis/SSDB+Twemproxy的配置与使用(Mac/Linux平台)
  6. HDU 4349 Xiao Ming&#39;s Hope lucas定理
  7. jq验证插件validate
  8. .NET 4.0中的泛型的协变和逆变
  9. POJ1625 Censored!(AC自动机+DP)
  10. Bitset[HDU2051]