Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
关闭iOS通知内容扩展中的键盘_Ios_Swift_Apple Push Notifications - Fatal编程技术网

关闭iOS通知内容扩展中的键盘

关闭iOS通知内容扩展中的键盘,ios,swift,apple-push-notifications,Ios,Swift,Apple Push Notifications,我通过通知内容扩展目标在iOS 11通知窗口中显示自定义操作按钮。其中一个是“评论”按钮。如果我按下它,键盘会正确显示,但我无法想出如何让键盘离开并返回到通知上的其他按钮。我看不到任何东西可以调用resignFirstResponder。我只是错过了一些非常明显的东西吗?有多种方法可以做到这一点 不带内容扩展名 第一个甚至不需要通知内容扩展!UNTextInputNotificationAction为您完成所有工作。初始化操作时,请为触发操作时显示的文本字段指定参数。在注册期间,该操作会附加到您

我通过通知内容扩展目标在iOS 11通知窗口中显示自定义操作按钮。其中一个是“评论”按钮。如果我按下它,键盘会正确显示,但我无法想出如何让键盘离开并返回到通知上的其他按钮。我看不到任何东西可以调用
resignFirstResponder
。我只是错过了一些非常明显的东西吗?

有多种方法可以做到这一点

不带内容扩展名 第一个甚至不需要通知内容扩展!
UNTextInputNotificationAction
为您完成所有工作。初始化操作时,请为触发操作时显示的文本字段指定参数。在注册期间,该操作会附加到您的通知类别中(即,在
内,将使用选项完成启动)

产生如下结果:


请记住,在iOS 10和iOS 11上,任何点击通知本身的行为——就像点击文本字段一样——都可能导致通知被驳回!出于这个原因和许多其他原因,走这条路线可能是不可取的。

有多种方法可以做到这一点

不带内容扩展名 第一个甚至不需要通知内容扩展!
UNTextInputNotificationAction
为您完成所有工作。初始化操作时,请为触发操作时显示的文本字段指定参数。在注册期间,该操作会附加到您的通知类别中(即,在
内,将使用选项完成启动)

产生如下结果:


请记住,在iOS 10和iOS 11上,任何点击通知本身的行为——就像点击文本字段一样——都可能导致通知被驳回!出于这一点和其他许多原因,采用这种方法可能是不可取的。

这是使用UNTextInputNotificationAction吗?是的,这就是我正在使用的。这是使用UNTextInputNotificationAction吗?是的,这就是我正在使用的。所以我只需要定义一个返回一个
UITextField的
inputAccessoryView
?看起来很容易。我明天再做。多谢。一旦我让它工作,我会回来,并标记这个答案。你能展示一个如何生成文本字段的例子吗?出于某种原因,我一直在努力纠正这一部分。在我输入文本并说submits之后,如何在该部分中添加一个按钮以关闭通知并将其删除,以便我只需要定义一个返回
UITextField
inputAccessoryView
?看起来很容易。我明天再做。多谢。一旦我让它工作,我会回来,并标记这个答案。你能展示一个如何生成文本字段的例子吗?出于某种原因,我正在努力使这一部分正确。我如何在这里面添加一个按钮来关闭通知,并在我输入文本并说提交后将其删除
userNotificationCenter.getNotificationCategories { (categories) in
    var categories: Set<UNNotificationCategory> = categories
    let inputAction: UNTextInputNotificationAction = UNTextInputNotificationAction(identifier: "org.quellish.textInput", title: "Comment", options: [], textInputButtonTitle: "Done", textInputPlaceholder: "This is awesome!")
    let category: UNNotificationCategory = UNNotificationCategory(identifier: notificationCategory, actions: [inputAction], intentIdentifiers: [], hiddenPreviewsBodyPlaceholder: "Placeholder", options: [])

    categories.insert(category)
    userNotificationCenter.setNotificationCategories(categories)
}
override var canBecomeFirstResponder: Bool {
    get {
        return true
    }
}

func didReceive(_ notification: UNNotification) {
    self.label?.text = notification.request.content.body
    self.textField?.delegate = self
    self.becomeFirstResponder()
    self.textField?.becomeFirstResponder()
    return
}


// UITextFieldDelegate
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
    self.textField?.resignFirstResponder()
    self.resignFirstResponder()
    return true
}