ios – UITextFieldDelegate vs UITextField控件事件

如果我想处理对UITextField的更改,例如用户在其中键入;看起来这可以通过将委托分配给该文本字段,然后让代理实现shouldChangeCharactersInRange,或者通过向textField添加目标以及处理UIControlEventEditingChanged事件来完成.

除了使用代理方法,您可以返回NO,从而阻止用户进行编辑,这两件事情有什么区别吗?

处理编辑开始或编辑结束的相同问题.它可以通过适当的委托方法或适当的事件来完成.如果控件事件可以进行必要的工作,那么textField代理是什么?

解决方法

你是对的;您可以通过这两者基本上做同样的事情,但是UIControl是较低级别的,并且允许您通过[UIControl addTarget:action:forControlEvents:]将每个特定UIEvent从每个特定UIEvent中抽出到不同的目标,其中只有一个委托.

我也会说,UITextField delegate protocol只是一个更方便,更高级别的替代UIControl / UIEvent的方式来管理UITextField的行为.

最常见的代理模式是UITableView DataSource和Delegate,我会说使用UITextField委托协议是非常相似的,因此,直接从UIControl处理消息的定义更为明确.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...