【问题标题】:DidSelect method not getting called when tap on message in iMessage Extension在 iMessage 扩展中点击消息时没有调用 DidSelect 方法
【发布时间】:2016-10-12 10:43:56
【问题描述】:

我正在开发 iMessage 扩展程序,但 didSelect(_ message: MSMessage, conversation: MSConversation) 并非总是被调用,有时它被调用。但是当它调用和不调用时都没有。根据我在扩展启动后的观察,第一次点击消息方法会调用,但之后该方法不会被调用。我想跟踪每一次点击消息。

有什么方法可以识别 iMessage 扩展中的消息点击?

override func didSelect(_ message: MSMessage, conversation: MSConversation) {

    super.didSelect(message, conversation: conversation)
    isExpandingFromMessage = true

}

下面是我的 iMessage 扩展程序中的图像,并且想要在用户点击消息时识别事件。

【问题讨论】:

    标签: objective-c swift ios10 ios-extensions imessage-extension


    【解决方案1】:

    该方法称为“didSelect”,而不是“didTap”,因此它仅在您最初选择消息时触发。您可以在https://developer.apple.com/reference/messages/msmessagesappviewcontroller 找到此行为

    func didSelect(MSMessage, 对话: MSConversation)

    在系统更新对话的 selectedMessage 属性后调用 对用户在脚本中选择消息对象的响应。”

    如果您想跟踪消息上的所有点击,您可以尝试将 UITapGestureRecognizer 添加到消息视图。

    【讨论】:

    • 是的,你是对的,didSelect 只会调用,一旦selectedMessage 得到更新。
    • 但是我们不能在MSMessage上添加手势。
    • 那么如何检测用户何时多次选择同一条消息?我只得到一次事件,第一次。之后,没有事件被调用,我无法知道在应用程序中执行相同的操作,即第一次选择消息时执行的操作。
    猜你喜欢
    • 1970-01-01
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    相关资源
    最近更新 更多