【发布时间】:2013-10-01 13:53:19
【问题描述】:
我在UITableViewCell 中有一个UIButton,它保存在我的UITableViewController 子类拥有的表中。我正在尝试利用目标/动作对的功能,它可以将事件冒泡到下一个响应者,直到找到可以处理事件的响应者,但我没有让它工作。一些代码:
在我的表格单元格中,我这样设置按钮:
[self.button addTarget:nil action:@selector(doThing) forControlEvents:UIControlEventTouchUpInside];
按钮被添加到我的单元格中,并且单元格在表格视图中显示得很好。因为我已经为目标传递了nil,所以这个事件应该会冒泡,直到它到达我的View Controller,它实现了-doThing,但它没有被调用。
我已经在单元格子类和我的视图控制器子类中覆盖 - (BOOL)canBecomeFirstResponder 并返回 YES,但即使合并,它仍然不起作用。
我已经调试发现按钮和视图控制器都在同一个响应者链中,但不知何故,事件似乎没有弥补。
有什么想法吗?
【问题讨论】:
-
您是否考虑过为表格视图可以设置的下一个响应者添加一个设置器,并且单元格可以在
nextResponder中返回? -
@tapi 在这一点上,我还不如直接通过一个块或设置一个委托。
-
同意,只是一个想法。这是iOS7下的吗?它的行为就像在 iOS6 上为我宣传的那样
-
编辑:响应者链是正确的,但动作仍然没有冒泡
-
第二次编辑:这适用于我在 iOS6 上,但不适用于 iOS7。它在选择器上使用和不使用 sender 参数都有效。是时候使用雷达了。
标签: ios uicontrol uiresponder responder-chain