标签: swiftui-contextmenu

上下文菜单未在 SwiftUI 中更新

我正在尝试设置一个.contextMenu带有切换值的按钮的SwiftUI Bool。上下文菜单的按钮文本应该在Bool切换时发生变化。但上下文菜单不会更新。有没有办法强制更新上下文菜单?

描述问题的示例代码:

import SwiftUI

struct Item: Identifiable {
    let id = UUID()
    let user: String
    var active: Bool
}

struct ContentView: View {
    @State var items: [Item] = [
        Item(user: "Daniel",active: false),
        Item(user: "Jack", active: true),
        Item(user: "John", active: true)
    ]
    
    @State var isOn : Bool = false
    var body: some View {
        List {
            ForEach(items) { item in
                VStack {
                    Text("\(item.user)")
                        
                    HStack {
                        Text("Active ? ")
                        Text(item.active ? "YES": "NO")
                    }
                }.contextMenu{
                    Button(action: …
Run Code Online (Sandbox Code Playgroud)

contextmenu swift swiftui swiftui-contextmenu

12
推荐指数
1
解决办法
2196
查看次数

SwiftUI ContextMenu:设置阴影形状或隐藏它

我想使用带有圆形按钮的上下文菜单。如果长按激活上下文菜单,按钮周围会出现一个圆角矩形的阴影。我已经尝试过使用.contentShape(Circle()),但这根本不起作用。

有没有办法隐藏这个阴影或改变它的形状,使其与按钮匹配?也许底层 UIKit 视图的属性可以修改?

谢谢回答!

在此输入图像描述

import SwiftUI

struct ContentView: View {
    var body: some View {
        Circle()
            .frame(width: 100, height: 100, alignment: .center)
            .foregroundColor(.yellow)
            .contentShape(Circle()) //does not work
            .contextMenu
        {
            Button(action: {}, label:
                    {
                Text("Action 1")
            })
            
            Button(action: {}, label:
                    {
                Text("Action 2")
            })
        }
    }
}

Run Code Online (Sandbox Code Playgroud)

ios swift swiftui swiftui-contextmenu

6
推荐指数
1
解决办法
1336
查看次数

标签 统计

swift ×2

swiftui ×2

swiftui-contextmenu ×2

contextmenu ×1

ios ×1