升级到 MacOS 15 后,在
.searchable()
上使用 NavigationSplitView
会导致以下错误:
NSToolbar 0x60000244b8d0 已包含标识符为 com.apple.SwiftUI.search 的项目。不允许出现此类重复项目。
MacOS 升级后,应用程序开始失败,升级到 XCode 16 并重建并没有让它变得更好。
发现这里也有描述(https://forums.developer.apple.com/forums/thread/763829),但是没有任何提示如何解决这个问题。
为了解决这个问题,我将
.searchable()
修改器从 NavigationSplitView
移动到另一个视图,如下所示(简化):
NavigationSplitView {
Sidebar
} content: {
ContentView
.searchable(text: $searchTerm) // moved here
} detail: {
DetailView
}
//.searchable(text: $searchTerm) // original placement