能否在Interface Builder中自动将UITextField的delegate设置为所属控制器?
UITextField在Interface Builder中绑定所属视图控制器为delegate的配置方案
不存在将控件拖入画布时就自动将delegate关联到所属视图控制器的系统默认开关,但可以通过IB原生操作快速完成绑定,整个过程不需要编写重复的绑定代码,操作路径十分简洁。
具体可落地的绑定方式
- Connection Inspector面板拖拽绑定
- 在IB画布或左侧文档大纲中选中目标
UITextField - 按下快捷键
Cmd + Option + 6快速调出右侧的连接检查器面板 - 找到面板中
Referencing Outlets分组下的delegate条目,按住条目右侧的空心圆点,拖拽到左侧文档大纲中承载该控件的视图控制器图标上,松开即可完成绑定
- 在IB画布或左侧文档大纲中选中目标
- Control键快捷拖拽绑定
- 选中画布上的目标
UITextField,按住Control键从控件本身向所属视图控制器的画布区域拖拽 - 在弹出的连接菜单中选择
delegate选项,即可一步完成绑定
- 选中画布上的目标
绑定前需要确保对应的视图控制器类已经声明遵循
UITextFieldDelegate协议,否则运行时调用代理方法时会出现未实现方法的崩溃问题。这种IB层面生成的绑定效果和代码中手动写textField.delegate = self的效果完全一致,不会产生额外的引用循环,因为delegate属性本身是弱引用修饰的。绑定完成后,视图控制器加载过程会自动完成delegate的关联,不需要在代码里重复书写绑定逻辑。
内容的提问来源于stack exchange,提问作者James Joshua Street
相关产品推荐
相关产品推荐

