我已经使用委托和数据源等协议进行了大量工作,最近我使用UIKeyInput
协议开展了一些工作。
我已经习惯了self.tableView.delegate = self
之类的东西,但UIKeyInput
我不需要这样做。但是我实现的协议方法(例如insertText:
等)仍被调用。
有人可以向我解释这是如何运作的吗?
非常感谢你的帮助!
答案 0 :(得分:1)
Cocoa Touch框架有一个“响应链”的概念,它是如何确定在何处提供UI输入事件。 “第一响应者”处于响应者链的首位。当iOS具有键盘输入事件时,它会检查当前第一个响应者是否支持UIKeyInput协议,如果有,则调用这些方法。
您不需要为另一个对象注册为UIKeyInputDelegate,因为框架将这些消息的收件人定义为第一个响应者。