NSToolbarDelegateで、WWDC20で追加されたばかりの新規APIを利用します。
以下のようにprimarySidebarTrackingSeparatorItemIdentifier
を配置してください。そうすると、システムがそこをprimaryとsupplementary(もしくはsecondary)の境界線だと認識するので、適切にアイテムを配置してくれます。
この時、上記のidentifierに対してtoolbar(_:itemForItemIdentifier:willBeInsertedIntoToolbar:)
では追加の記述は必要ありません。
extension ToolbarDelegate: NSToolbarDelegate {
func toolbarDefaultItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
let identifiers: [NSToolbarItem.Identifier] = [
.flexibleSpace,
.itemPlacedInPrimary,
.primarySidebarTrackingSeparatorItemIdentifier,
.toggleSidebar,
.flexibleSpace
]
return identifiers
}
func toolbarAllowedItemIdentifiers(_ toolbar: NSToolbar) -> [NSToolbarItem.Identifier] {
return toolbarDefaultItemIdentifiers(toolbar)
}