如何在xib文件中使用"First Responder"?

Mos*_*szi 16 iphone objective-c first-responder ios

我读到了响应者链,基本上我读到了如何将UI中的事件传递给响应者链,如何处理它们以及如何传递.我还使用了-becomeFirstResponder和-resignFirstResponder,但我只将它们用于基本任务,比如在iOS上显示键盘和处理震动事件.

我想知道的是如何在Xcode生成的MainWindow.xib中使用"First Responder"代理对象.我看到一些收到的操作,我也看到我可以在Identity检查器选项卡上创建操作.

所以我的问题是:我如何使用这些操作,何时应该在IB中使用此代理对象

Interface Builder截图

提前致谢.

ugh*_*fhw 8

将动作分配给第一响应者对象与以编程方式向具有零目标的控件添加动作相同.当触发操作时,应用程序将通过响应者链并将操作发送给接受它的第一个响应者.在mac上,它通常用于自动将菜单命令发送到当前窗口或文档.如果您有多个要使用相同按钮发送消息的对象,则应该使用它.


Jer*_*man 3

每当您希望将操作发送到第一响应者时,您都可以使用第一响应者作为操作的目标,无论发送操作时恰好是哪个特定对象。

在桌面 Cocoa 中,针对第一响应者的消息实际上是一个nil目标操作 - 没有目标被隐式地理解为第一可能的响应者,即第一响应者。

通常,文本操作会发送给第一响应者。您希望将按键发送到具有焦点的文本字段,但具有焦点的文本字段会在视图和应用程序的生命周期中发生变化。每次文本字段获得焦点时,您都​​可以手动重新定位操作,但多亏了NSResponder,您不必费心 - 这一切都为您处理好了。