Objective c 为什么某个协议在没有实现它的类的情况下工作?
我在代理和数据源等协议方面做了很多工作,最近我使用Objective c 为什么某个协议在没有实现它的类的情况下工作?,objective-c,protocols,uikeyinput,Objective C,Protocols,Uikeyinput,我在代理和数据源等协议方面做了很多工作,最近我使用uikeyinport协议做了一些工作。 我已经习惯了类似于self.tableView.delegate=self的事情,但是使用uikeyinport我不需要这样做。但是我实现的协议方法(例如,insertText:等)仍然被调用 有人能给我解释一下这是怎么回事吗 非常感谢你的帮助 Cocoa Touch框架有一个“响应者链”的概念,即它如何确定在何处交付UI输入事件。“第一响应者”位于响应者链的顶端。当iOS有键盘输入事件时,它会检查当前第
uikeyinport
协议做了一些工作。
我已经习惯了类似于self.tableView.delegate=self
的事情,但是使用uikeyinport
我不需要这样做。但是我实现的协议方法(例如,insertText:
等)仍然被调用
有人能给我解释一下这是怎么回事吗
非常感谢你的帮助 Cocoa Touch框架有一个“响应者链”的概念,即它如何确定在何处交付UI输入事件。“第一响应者”位于响应者链的顶端。当iOS有键盘输入事件时,它会检查当前第一响应程序是否支持UIKeyInput协议,如果支持,则调用这些方法
您不需要注册为另一个对象的UIKeyInputDelegate,因为框架将这些消息的接收者定义为第一响应者。您在哪个类上实现了
UIKeyInput
?UIView的自定义子类UIView
它以某种方式获得了您自己的句柄。可能是在右舷/齐布?这些都不涉及…完全有道理!非常感谢:)