xcode 如何删除“查找,翻译,搜索网页”选项,并保持“查找选择”为选定的文本iOS 16

pdtvr36n  于 2022-11-26  发布在  iOS
关注(0)|答案(2)|浏览(146)

使用UITextView

//...
txtView.isFindInteractionEnabled = true
//...

我的代码:

override func buildMenu(with builder: UIMenuBuilder) {
    if #available(iOS 16.0, *) {
        builder.remove(menu: .lookup)
    }
    super.buildMenu(with: builder)
}

这将删除:查找所选内容、查找、翻译、搜索Web。
我只想保留选项:**“查找所选内容”**并删除其他“查找、翻译、搜索Web”

xj3cbfub

xj3cbfub1#

override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool {
        
        if action.description == "_findSelected:" {
            return true
        }else{
            return false
        }
    }
31moq8wy

31moq8wy2#

您可以从菜单中删除特定的子元素,而不是删除整个菜单。

override func buildMenu(with builder: UIMenuBuilder) {
    if #available(iOS 16.0, *) {
        builder.replaceChildren(ofMenu: .lookup) { elements in
            return elements.filter { item in
                switch (item as? UICommand)?.action.description {
                case "_define:", "_translate:":
                    return false
                default:
                    return true
                }
            }
        }
    }
    super.buildMenu(with: builder)
}

_define:操作同时包含元素 * 查找 * 和 * 搜索web*。

相关问题