通过左键单击 macOS 触发 SwiftUI 上下文菜单

Posted

技术标签:

【中文标题】通过左键单击 macOS 触发 SwiftUI 上下文菜单【英文标题】:SwiftUI context menu trigger by left click on macOS 【发布时间】:2021-05-24 19:28:30 【问题描述】:

我的视图上有一个齿轮按钮,当用户单击它时,我想显示一个按钮菜单。 https://developer.apple.com/documentation/swiftui/view/contextmenu(menuitems:) 似乎是为此任务而设计的,但只有右键单击才能触发上下文菜单。

如何通过左键单击 macOS 来触发contextMenu?谢谢!

【问题讨论】:

使用菜单代替 contextMenu。这是一个例子***.com/a/63933231/12299030。 @Asperi 感谢您的评论。我已经尝试过Menu,但菜单的点击区域是一个栏,我只想通过单击齿轮图标本身来触发菜单。 【参考方案1】:

您可以为该类型的 UI 使用特定的菜单样式。如果你想隐藏指标,只要输入false即可。

Menu("Label") 
      Button("Buttons")  

.menuStyle(BorderlessButtonMenuStyle(showsMenuIndicator: true))
.fixedSize() // Otherwise will be the width of your menu options.

【讨论】:

以上是关于通过左键单击 macOS 触发 SwiftUI 上下文菜单的主要内容,如果未能解决你的问题,请参考以下文章

事件类型——鼠标事件

当我通过鼠标单击更改 SwiftUI 列表的选择时,@Published 属性的 didSet 被调用了两次

SwiftUI 在单击时执行脚本并在视图窗口上返回输出

SwiftUI - 在 macOS 上翻转全局坐标空间

如何在 macOS 上检测 SwiftUI 中的键盘事件?

如何在 macOS 上检测 SwiftUI 中的键盘事件?