然后,如果此第一响应者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 – “第一反应者” – 我得到了吗?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)