代码之家  ›  专栏  ›  技术社区  ›  bpapa

uiviewController未接收touchesbegan消息

  •  3
  • bpapa  · 技术社区  · 15 年前

    我有一个非常简单的uiviewcontroller。它是用我在Interface Builder中创建的视图初始化的,它只包含一个uiImageView。当用户触摸屏幕时,我希望调用uiviewcontroller的touchesbegan消息。所以,我重写了它并添加了一些日志记录,但什么都没有发生。

    我根本没有做任何“特殊”的事情,因为uiviewcontroller继承了uiresponder,所以我希望它可以立即生效。据我所知,uiImageView在默认情况下禁用了用户交互,因此我通过InterfaceBuilder和uiViewController的viewdidLoad方法(我已将uiImageView绑定到iboutlet)启用了它。我还确保在Interface Builder的父视图中启用用户交互。

    还有什么我忘记的吗?

    3 回复  |  直到 14 年前
        1
  •  3
  •   bpapa    15 年前

    好吧,我是个傻瓜。它很好用。问题是,我没有意识到我是在向uiviewcontroller发送一条发布消息,而没有先将它保留在其他地方。这就是问题的根源。

        2
  •  0
  •   Kekoa    15 年前

    很难说你的问题是什么,我不知道你超越它是什么意思?

    确保您正在将ToucheSbegan事件与Interface Builder中的IBAction连接起来?

    必须创建IBaction函数来处理事件,并显式将偶数连接到IBaction。它不像简单地重写一个方法那么简单。

    尽管视图绑定到iboutlet,但您需要使用ibaction连接事件,否则您将无法获得任何这些事件。

        3
  •  0
  •   zenchemical    14 年前

    请忽略第一个答案。实际上,它与在自定义视图中重写方法一样简单。不接收ToucheSbegan的最常见原因是CanBecomeFirstResponder方法未被实现。这不是ib连接,这些是触摸处理的标准方法。