2013-03-24 40 views
2

我在代理和数据源等协议上工作过很多,最近我使用UIKeyInput协议进行了一些工作。 我习惯于像self.tableView.delegate = self这样的东西,但用UIKeyInput我不需要那样。但是我实现的协议方法(例如insertText:等)却被调用了。为什么某个协议工作时没有实现它的类?

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

非常感谢您的帮助!

+0

你在哪个类实现了'UIKeyInput'? – driis 2013-03-24 16:49:00

+0

“UIView”的自定义子类 – Dario 2013-03-24 16:49:50

+0

它以某种方式处理了你的自我。也许在右舷/ zib? – danh 2013-03-24 16:50:22

回答

1

Cocoa Touch框架有一个“响应者链”的概念,它是如何计算出输入UI输入事件的位置的。 “第一响应者”是响应者链条的负责人。当iOS有一个键盘输入事件时,它会检查当前的第一响应者是否支持UIKeyInput协议,如果有,则调用这些方法。

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

+0

完全合理!非常感谢 :) – Dario 2013-03-24 17:03:15

相关问题