2

我在委托和数据源等协议方面做了很多工作,最近我使用该UIKeyInput协议进行了一些工作。我已经习惯了这样的事情,self.tableView.delegate = selfUIKeyInput我不需要那样。但是我实现的协议方法(例如insertText:等)仍然被调用。

有人可以向我解释这是如何工作的吗?

非常感谢您的帮助!

4

1 回答 1

1

Cocoa Touch 框架有一个“响应者链”的概念,它是如何确定在哪里传递 UI 输入事件的。“第一响应者”位于响应者链的头部。当 iOS 有键盘输入事件时,它会检查当前的第一响应者是否支持 UIKeyInput 协议,如果支持则调用这些方法。

您不需要为另一个对象注册为 UIKeyInputDelegate,因为框架将这些消息的接收者定义为第一响应者。

于 2013-03-24T16:57:20.497 回答