在 DisclosureGroup 中剪辑文本

Clip text in DisclosureGroup

我有一个 DisclosureGroup,如果它太长,我想剪掉 Text 标签,而不是 。我怎样才能做到这一点?

当前代码:

struct ContentView: View {
    var body: some View {
        List {
            DisclosureGroup {
                Text("Content")
            } label: {
                Text("Some long label which is too long for the screen")
                    .lineLimit(1)
                    .fixedSize(horizontal: true, vertical: false)
                    // Would likely clip to bounds here, etc...
            }
        }
        .listStyle(.sidebar)
    }
}

此尝试的问题是披露指示器箭头现在不在屏幕上。我希望宽度保持不变,但只是剪裁 Text 而不是截断它。

没有fixedSize fixedSize

预期(粗略编辑):

使用 overlay 有效。

代码:

struct ContentView: View {
    var body: some View {
        List {
            DisclosureGroup {
                Text("Content")
            } label: {
                Color.clear
                    .overlay(alignment: .leading) {
                        Text("Some long label which is too long for the screen")
                            .lineLimit(1)
                            .fixedSize(horizontal: true, vertical: false)
                    }
                    .clipped()
            }
        }
        .listStyle(.sidebar)
    }
}

结果: