SwiftUI macOS 在显示搜索栏时将工具栏项目置于最右侧位置

问题描述 投票:0回答:2

自 macOS 13 起,primaryAction 不再显示在搜索栏左侧的下一个

    MainView()
    .toolbar {
        ToolbarItem {
            Spacer()
        }
        ToolbarItemGroup(placement: .status) {
            Text("Status")
        }
        ToolbarItemGroup(placement: .principal) {
            Text("Principal")
        }
        ToolbarItemGroup(placement: .primaryAction) {
            Text("Primary")
        }
        ToolbarItemGroup(placement: .keyboard) {
            Text("Keyboard")
        }
        ToolbarItemGroup(placement: .secondaryAction) {
            Text("Secondary")
        }
        ToolbarItem {
            Text("Noplacement")
        }
    }
    .searchable(text: .constant(""))

如何将工具栏项放置在搜索旁边的最右上角?

注意:没有搜索栏,它们会正确放置在最右边的位置

macos swiftui nstoolbar
2个回答
0
投票

在 macOS Sonoma 上,添加一个

ToolbarItem
且内部仅包含一个
Spacer
会创建“灵活空间”项目,该项目通常在 macOS 工具栏中用于对齐元素。

有了这个,就不需要为

placement
提供值,因为您将能够将元素放置在任何位置。

ToolbarItem(
  id: "flexible-space-id" // Provide a ID to allow for toolbar customization
) {
  Spacer()
}


-1
投票

你只需要添加一个Spacer()

   .toolbar {     
     ToolbarItemGroup(placement: .primaryAction) {
                            Spacer()
                            Text("Primary")
                        }
   }
   .searchable(text: .constant(""))

Here's what it looks like

© www.soinside.com 2019 - 2024. All rights reserved.