如何在已经显示的上下文菜单中更新值?

问题描述 投票:0回答:1

我正在学习本教程https://kylebashour.com/posts/context-menu-guide,并试图重新利用提供上下文菜单的代码段:

class TableViewController: UITableViewController {
    let data: [MyModel] = []

    override func viewDidLoad() {
        super.viewDidLoad()

        // Configure the table view
    }

    override func tableView(_ tableView: UITableView, contextMenuConfigurationForRowAt indexPath: IndexPath, point: CGPoint) -> UIContextMenuConfiguration? {
        let item = data[indexPath.row]

        return UIContextMenuConfiguration(identifier: nil, previewProvider: nil) { suggestedActions in

            // Create an action for sharing
            let share = UIAction(title: "Share", image: UIImage(systemName: "square.and.arrow.up")) { action in
                print("Sharing \(item)")
            }

            // Create other actions...

            return UIMenu(title: "", children: [share, rename, delete])
        }
    }
}

显示上下文菜单后的5秒,我想更新菜单的标题

UIMenu(title: "expired", children: [share, rename, delete])

并确保其子级具有.disabled属性集。

UIAction(title: "Share", image: UIImage(systemName: "square.and.arrow.up", , attributes: .disabled)

有没有一种方法可以更新已经显示的上下文菜单的标题及其子级的属性?

ios swift iphone contextmenu
1个回答
0
投票

如您所见,标题是_UIPreviewPlatterActionsTitleView中标签的文本>

因此您可以遍历UI层次结构以访问标签。

并使用KVC进行编辑。

00

在UI调试器的右上方

444

在UI调试器的左下角,

易于使用上面的地址来整理UI元素。

子元素的属性也是

555

© www.soinside.com 2019 - 2024. All rights reserved.