objective-c – “第一反应者” – 我得到了吗?

objective-c – “第一反应者” – 我得到了吗?,第1张

概述让我简要总结一下:nib文件中的“First Responder”是一个对象,它表示用户关注的UI控件元素。因此,如果用户单击控件,则nib将点击UI控件的nib设置为First Responder。在我的应用程序,我可以从笔记本电脑的“第一响应者”的出口,以便我可以例如发送消息“使红色字体颜色”到用户已通过单击激活的任何。 然后,如果此第一响应者UI控件不理解该消息,则该消息在响应者链中传递,直 让我简要总结一下:nib文件中的“First Responder”是一个对象,它表示用户关注的UI控件元素。因此,如果用户单击控件,则nib将点击UI控件的nib设置为First Responder。在我的应用程序,我可以从笔记本电脑的“第一响应者”的出口,以便我可以例如发送消息“使红色字体颜色”到用户已通过单击激活的任何。

然后,如果此第一响应者UI控件不理解该消息,则该消息在响应者链中传递,直到父元素或祖父(等等)UI控制元素理解消息。否则将被忽略。

所以首先响应者总是建立一个“链接”到具有焦点的UI控件。是对的吗?

解决方法 正确的整体图片,错误的实现细节在第一段。

A “First Responder” in a Nibfile is an Object …

不,实际上,第一响应者是零。将UI控件(例如,按钮)连接到nib中的First Responder等同于代码中的[control setTarget:nil]。

在nib窗口中第一个响应者伪造对象的原因是,在IB中,您同时设置目标和动作(ctrl-拖动到目标,从d出菜单中选择动作)。你不能设置 *** 作,并且不设置目标,就像你可以在代码中,所以要设置为nil,你需要明确这样做。这是First Responder的用途:它是一个假的对象,代表nil,所以你可以设置目标和动作的方式,当你设置到一个特定的真实目标。

当然,你不能使用这个设置任何其他nil,只有视图的目标。你只能使用它来表示第一反应者,而不是任何其他。

So if the user klicks on an UI control,the Nib sets …

笔尖不做任何事情。它只是一个冻结的对象存储在磁盘上的集合。即使你实例化NSNib,你所做的就是解冻一些对象。它是做事情的对象。

在现在的情况下,当你取消存档从nib连接到第一响应者的控制,它的目标设置为nil(记住,这是第一响应者真的是:一个目标nil)。当控件的目标为nil,并且用户点击它时,它将其 *** 作发送到当时第一个响应者的任何响应者。

您的第二和第三段是正确的。

总结

以上是内存溢出为你收集整理的objective-c – “第一反应者” – 我得到了吗?全部内容,希望文章能够帮你解决objective-c – “第一反应者” – 我得到了吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1042521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存