Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone “怎么可能?”;“第一响应者”;是否在xib文件中使用?_Iphone_Objective C_Ios_First Responder - Fatal编程技术网

Iphone “怎么可能?”;“第一响应者”;是否在xib文件中使用?

Iphone “怎么可能?”;“第一响应者”;是否在xib文件中使用?,iphone,objective-c,ios,first-responder,Iphone,Objective C,Ios,First Responder,我阅读了关于响应者链的内容,基本上我阅读了UI中的事件如何在响应者链上传递,如何处理它们以及如何传递。我还使用了-becomeFirstResponder和-resignFirstResponder,但我只将它们用于基本任务,比如在iOS上显示键盘和处理震动事件 我想知道的是如何使用Xcode生成的MainWindow.xib中的“First Responder”代理对象。我看到一些收到的操作,而且我还看到我可以在Identity inspector选项卡上创建操作 所以我的问题是:我如何使用这

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

我想知道的是如何使用Xcode生成的MainWindow.xib中的“First Responder”代理对象。我看到一些收到的操作,而且我还看到我可以在Identity inspector选项卡上创建操作

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


提前感谢。

无论何时您希望将操作发送给第一响应者,都可以使用第一响应者作为操作的目标,而不管发送操作时恰好是哪个特定对象

在desktop Cocoa中,以第一响应者为目标的消息实际上是一个
nil
-目标操作-没有任何目标被隐含地理解为第一个可能的响应者,即第一响应者


通常,文本操作直接指向第一响应者。您希望将按键发送到具有焦点的文本字段,但具有焦点的文本字段在视图和应用程序的生命周期中会发生变化。每次文本字段获得焦点时,您都可以手动重定操作的目标,但由于有了
nsrresponder
,您不必费心-这一切都由您来完成。

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

谢谢您的回答Jeremy。这项功能在iPhone上似乎没有多大用处(或者至少到目前为止我看不出有什么用处)……你说的“碰巧是”的对象是什么意思?对象恰好在发送操作时存在。发送操作时会有许多对象。哪一个?@JimThio是发送动作时的第一响应者。可以有许多对象,但在任何给定时间窗口中只能有一个第一响应者。因此,第一响应者是响应者链中实际响应事件的第一响应者。如果我在parentView和childView.UserInteractionEnabled=false中有childView,那么parentView是第一个响应者。我说的对吗?First responder是“check here First”响应者的名字。如果他们不处理它,它就会通过响应链冒出气泡。有关详细信息,请参阅。什么是目标为零的控件?我认为每个控件都有许多目标,这取决于事件。@JimThio你分析错了。它是“向某个控件添加一个以零为目标的操作”,而不是“向以零为目标的控件添加一些操作”。目标是按操作设置的,而不是按控件设置的。事实上,这是正确的。为cocoa touch的每个动作设置目标。看起来firstresponder对cocoa touch毫无用处。如果您没有指定特定对象,firstresponder就是目标。大多数情况下,您不会在iOS上使用它,因为您知道第一响应者将是谁(hello view controller)。如果你正在制作一个可重用控件库或类似的东西,那么在iOS上就更重要了?按钮?什么?