首页 > 解决方案 > 如果在点击期间按下选项,如何更改 SwiftUI 菜单的内容

问题描述

我想创建一个具有动态内容的 SwiftUI 菜单(很容易做到),但是如果在单击菜单时按下了选项键,我想对项目进行排序。我已经探索过使用手势,但我无法弄清楚如何以不会干扰菜单本身操作的方式从手势更改我的状态。

有没有办法根据点击+修改键更新状态变量,这将在创建菜单子视图之前发生,并且不会干扰菜单的正常操作?

菜单将有“最近”并且可能包含几十个条目。能够对历史进行排序将使查找特定条目的速度更快。我想使用菜单,因为它在不使用时非常紧凑。

我正在寻找的骨架是:

Menu("My Menu") {
    if <option-key pressed?> {
        // sorted  order
        Button("A") { }
        Button("B") { }
        Button("C") { }
        Button("D") { }
    } else {
        // natural order
        Button("B") { }
        Button("D") { }
        Button("A") { }
        Button("C") { }
    }
}

这是针对 MacOS 的,谢谢!

标签: macosswiftui

解决方案


推荐阅读