2009-12-06 82 views
4

我对iPhone的编码比较陌生,但我已经达到了在真正的(希望)可销售的应用程序上工作的要点。响应者行为和响应者链

但有一点仍然是神秘的是响应者链。所有书籍都提供了参考,但我还没有找到一个描述如何修改该链的书。另一个好奇的是,当在IB中点击First Responder图标时,一个小小的连接盒会出现各种各样的选择来连接某些东西,但我从来没有找到任何解释。

有没有人知道这个响应程序的深入解释?

回答

3

Here's Jeff Lamarches explanation响应者链。虽然并不完全,但它应该让你在正确的轨道上思考。

+0

我在这里也遇到了同样的问题,但似乎与Jeff Lamarches的解释有关。你们有没有机会知道它是否移动到其他地方? – BadgerBadger 2017-03-28 04:54:08

2

响应者链是各种对象有机会处理事件的顺序。在一个简单的例子中,假设我们在NSApp的NSWindow中的NSView中有一个按钮。点击按钮时;该按钮将有第一次处理事件的机会,然后是控制器,然后是NSView,然后是其控制器,然后是NSWindow,然后是委托,然后是NSApp及其委托。这样,一个对象首先有机会处理事件,然后处理它的控制器/委托,然后处理对象的容器等等。还有其他的情况很多more complicated

对象通过实现 - (void)respondToFictionalEvent:(UIEvent *)事件来处理事件。如果发生这种情况,那么事件就会“消耗”(防止被自动传递到链上)。

+0

其实,我不确定按钮是否有机会回应,或者如果第一响应者是超级视图。 – Casebash 2010-01-14 23:11:10

+1

第一响应者,不管它是什么,按钮,文本字段,视图,其他,都有机会首先响应。然后它的下一个响应者,通常但不一定是它的超级视图。对象的控制器通常不涉及响应者链。你必须明确地设置控制器作为下一个响应者。只有Windows的委托和应用程序委托会自动包含在内。 – 2011-04-01 04:14:12