ios - 仅当从单元格外部点击屏幕时 UIMenuController 才会被关闭

标签 ios swift uimenucontroller

我有一个 UITableViewCell,其中有 bubbleView 内的 subview 。我添加了一个 UIMenuController,如下所示:

override func awakeFromNib() {
    super.awakeFromNib()
    bubbleView.addGestureRecognizer(UILongPressGestureRecognizer(target: self, action: #selector(presentMenu)))
}

@objc private func presentMenu() {
    let menu = UIMenuController.shared
    becomeFirstResponder()
    menu.setTargetRect(bubbleView.bounds, in: bubbleView)
    menu.setMenuVisible(true, animated: true)
}

enter image description here 这在演示时有效,但是如果我点击气泡的右侧,菜单将不会关闭,即,如果点击它呈现的同一单元格,则菜单不会关闭。点击下方或上方可关闭菜单。我在这里做错了什么?如果点击右侧,如何才能将其关闭?

最佳答案

UIMenuController 的矩形宽度似乎太大了。 您可以使用断点检查并查看其框架或将菜单背景颜色设置为例如红色并查看。

关于ios - 仅当从单元格外部点击屏幕时 UIMenuController 才会被关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57667291/

相关文章:

ios - AlamofireImage:无法从 af_setImageWithURL 获取完成 block 中的图像

swift - 关于文档的字符串到 NSString 的结合不起作用

ios - 如何在 iOS 中打开文件?

iphone - 从 TableView 中的 UIMenuController 中删除默认的剪切、复制、粘贴功能

ios - 捕获复制/粘贴事件 UIMenuController

ios - SwiftUI - 状态栏文本下方的列表滚动

iphone - 无法显示异步加载的纹理

ios - 如何观察图像旋转?

iOS - FileManager 不会删除文档目录中的 json 文件

swift - 在文本字段中快速进行 3D 触摸时关闭编辑菜单