您可以自定义 SwiftUI 上下文菜单的激活突出显示颜色吗?

Posted

技术标签:

【中文标题】您可以自定义 SwiftUI 上下文菜单的激活突出显示颜色吗?【英文标题】:Can you customize the activation highlight color of a SwiftUI context menu? 【发布时间】:2019-12-12 21:05:13 【问题描述】:

我有一个深色背景上带有浅色文本的视图。我需要向它添加一个上下文菜单。这是我正在使用的代码:

Text(rowModel.detail)
     .font(detailFont)
     .foregroundColor(Color(/* a light color */))
     .contextMenu 
     Button(action: 
         UIPasteboard.general.string = self.rowModel.detail
     , label: 
         Text("Copy")
     )
 

当菜单被激活并且设备处于光照模式时,结果如下:

我在网上找不到任何东西表明我可以更改突出显示的颜色。但以防万一,我想我会在这里问。可以做到吗?谢谢!

【问题讨论】:

您是否偶然找到了解决方案? 【参考方案1】:

您可以这样做为您的按钮设置自定义突出显示状态

struct YourButtonStyle: ButtonStyle 

  func makeBody(configuration: Self.Configuration) -> some View 
    configuration.label
      .padding()
      .foregroundColor(.white)
      .background(configuration.isPressed ? Color.green : Color.blue)
      .cornerRadius(8.0)
  




// To use it
Button(action: 
    UIPasteboard.general.string = self.rowModel.detail
, label: 
    Text("Copy")
)
.buttonStyle(YourButtonStyle())

【讨论】:

以上是关于您可以自定义 SwiftUI 上下文菜单的激活突出显示颜色吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 中激活/停用菜单项

SwiftUI:contextMenu 菜单

SwiftUI嵌入在Form或Section中的视图上下文菜单(contextMenu)无法独立弹出的解决

SwiftUI 中的上下文菜单预览没有圆角

如何将上下文菜单应用于 SwiftUI 表格行?

突出显示当前所选导航菜单项的背景