自定义输入附件视图通知
Posted
技术标签:
【中文标题】自定义输入附件视图通知【英文标题】:Custom input accessory view Notification 【发布时间】:2016-12-18 13:47:47 【问题描述】:在Advanced Notification Session 708 WWDC 2016 的末尾。他们谈到了同时进行文本输入和操作。
从 WWDC 会话 708 的 24 分钟开始。
您对派对邀请发表评论并同时接受或拒绝邀请。我试图这样做,但非常不成功。
class NotificationViewController: UIViewController, UNNotificationContentExtension
var textField = UITextField(frame: CGRect(x: 0, y: 0, width: 100, height: 10))
override func viewDidLoad()
super.viewDidLoad()
// Do any required interface initialization here.
override var canBecomeFirstResponder: Bool
return true
override var inputAccessoryView: UIView?
let customView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 40))
customView.backgroundColor = UIColor.red
textField.placeholder = "Type Comment here"
textField.textColor = UIColor.black
customView.addSubview(textField)
print(customView)
return customView
func didReceive(_ response: UNNotificationResponse, completionHandler completion: @escaping (UNNotificationContentExtensionResponseOption) -> Void)
if response.actionIdentifier == "comment"
becomeFirstResponder()
textField.becomeFirstResponder()
print("Its working")
if let textResponse = response as? UNTextInputNotificationResponse
print(textResponse.userText)
completion(UNNotificationContentExtensionResponseOption.doNotDismiss)
completion(UNNotificationContentExtensionResponseOption.doNotDismiss)
【问题讨论】:
【参考方案1】:不确定您的问题究竟是什么,但我最近遇到了类似的任务 - 我已经成功实施了您提到的 WWDC 演讲中的解决方案。
我的问题是我不知道在使用自定义inputAccessoryView
时如何关闭通知。我的解决方案是保存completionHandler
,然后在我的自定义inputAccessoryView
中的特定按钮被点击时调用它。
首先;创建函数变量来存储completionHandler:
var savedCompletionBlock:(UNNotificationContentExtensionResponseOption) -> Void = (UNNotificationContentExtensionResponseOption) in
然后;在func didReceive(_ response: UNNotificationResponse, completionHandler completion: @escaping (UNNotificationContentExtensionResponseOption) -> Void)
保存完成块:
savedCompletionBlock = completion
最后;在需要的任何地方调用它(例如单击按钮):
func confirmPressed()
savedCompletionBlock(.dismiss)
如果这对您没有帮助,请告诉我:)
【讨论】:
以上是关于自定义输入附件视图通知的主要内容,如果未能解决你的问题,请参考以下文章
在 UITableViewCell 的附件视图中使用自定义按钮的问题
为 UITableViewCell 的附件视图使用自定义图像并让它响应 UITableViewDelegate