SwiftUI:双击 macOS 列表行中的空白?

iph*_*aaw 4 macos swiftui

我试图让整行都可以双击。

这是我的代码:

import SwiftUI

let colourArray = ["red","blue","green"]
struct ContentView: View
{
    var body: some View
    {
        List
        {
            ForEach (colourArray, id: \.self)
            { colour in
                ArrayRow(colour: colour)
                    .gesture(TapGesture(count: 2).onEnded
                     {
                        print("double clicked")
                     })
                .padding(.bottom, 15)
            }
        }
    }
}

struct ArrayRow: View
{
    let colour: String
    
    var body: some View
    {
        HStack(alignment: .top)
        {
            Text(colour)
                .frame(width: 150, alignment: .leading)
            Text(colour)
                .frame(width: 150, alignment: .leading)
            Text(colour)
                .frame(width: 150, alignment: .leading)
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
Run Code Online (Sandbox Code Playgroud)

双击效果很好,但前提是您双击文本。如果您双击空白区域,则什么也不会发生。如何让整行响应双击?

vad*_*ian 5

您可以使用以下命令扩展可点击/可点击区域 .contentShape

ArrayRow(colour: colour)
    .contentShape(Rectangle())
    .gesture(TapGesture(count: 2).onEnded
    {
       print("double clicked")
    })
    .padding(.bottom, 15)
           
Run Code Online (Sandbox Code Playgroud)