【发布时间】:2021-08-13 19:48:40
【问题描述】:
我在 List/ForEach 中声明了两个单独的项目列表,如下所示:
List {
ForEach(model) { item in
ItemView(item)
.tag(item.id)
}
.onMove(perform: { rows, newIndex in
model.move(items: rows, destination: newIndex)
})
}
两个列表使用不同的模型,由其 ID 标识。不过,在 macOS 上,我意识到我可以将项目从一个列表拖到另一个列表,尽管它们的 ID 不同。
是否有可能在拖动时禁用另一个列表的拖放功能(例如通过.onInsert())?我已经使用NSItemProviderReading 和NSItemProviderWriting 实现了一个功能,以便能够检测用户何时开始拖动。
【问题讨论】:
-
我读了你的第一行,你在另一个列表中有 2 个列表。那是对的吗?还是 2 个单独的列表?
-
有 2 个单独的列表
-
我假设您使用的是 macos,因为在 ios-15 和 macCatalyst 上它运行良好。
-
正确!忘记说了