SwiftUI macOS:如何将Toolbar项置于搜索框右侧最右端
macOS 13+ 让Toolbar项固定在搜索框右侧最右端的解决方案
自macOS 13起,给视图添加.searchable后,primaryAction等Toolbar布局的默认位置逻辑发生改变,原本无搜索栏时能正常显示在窗口最右端的项,现在无法定位到搜索框右侧的最末端区域。
解决这个问题的核心是使用.trailing布局位置,这个placement在有搜索栏时会自动锚定到搜索框右侧的最末端,无搜索栏时也会保持在窗口最右端,完全匹配需求。
修改后的代码示例:
MainView() .toolbar { ToolbarItemGroup(placement: .status) { Text("Status") } ToolbarItemGroup(placement: .principal) { Text("Principal") } ToolbarItemGroup(placement: .keyboard) { Text("Keyboard") } ToolbarItemGroup(placement: .secondaryAction) { Text("Secondary") } // 将需要放在最右端的项归入.trailing组 ToolbarItemGroup(placement: .trailing) { Text("Primary") Text("Noplacement") } } .searchable(text: .constant(""))
如果需要单独控制每个Toolbar项的排列,也可以拆分为多个独立的.trailing类型ToolbarItem,它们会按代码顺序依次排列在搜索框右侧的最右端区域。
内容的提问来源于stack exchange,提问作者Peter Lapisu
相关产品推荐
相关产品推荐

