NSToolbar 是 macOS AppKit 框架中的一个类,用于在 macOS 应用窗口的顶部添加工具栏(Toolbar),也就是常在 Finder、Safari、Xcode 等应用窗口上方看到的那一排图标按钮或控件。

基本定义
NSToolbar在窗口顶部提供一个可自定义的工具栏,用于快速访问应用功能。
let toolbar = NSToolbar(identifier: "MainToolbar")
toolbar.delegate = self
toolbar.displayMode = .iconAndLabel
window.toolbar = toolbar
通常配合 NSWindow 使用。
主要用途
1、添加快捷按钮(比如“添加”、“删除”、“保存”等)。
2、添加搜索框、下拉菜单、分段控件等自定义控件。
3、提高用户对常用功能的访问效率。
4、支持自定义、可折叠、可移动(自动保存用户的自定义设置)。
工具栏按钮
每个按钮或控件用 NSToolbarItem 表示,例如:
func toolbar(
_ toolbar: NSToolbar,
itemForItemIdentifier itemIdentifier: NSToolbarItem.Identifier,
willBeInsertedIntoToolbar flag: Bool
) -> NSToolbarItem? {
if itemIdentifier == .saveItem {
let item = NSToolbarItem(itemIdentifier: .saveItem)
item.label = "保存"
item.image = NSImage(named: NSImage.saveTemplateName)
item.target = self
item.action = #selector(saveAction)
return item
}
return nil
}
常用属性
1、toolbar.items:当前所有 item。
2、toolbar.displayMode:图标 / 文本 / 图标+文本。
3、toolbar.allowsUserCustomization:是否允许用户自定义拖放。
4、toolbar.delegate:提供 item 的委托对象。
支持功能
1、拖动排序。
2、折叠/展开。
3、保存自定义布局。
4、自定义视图(如 TextField)。
5、自动调整宽度。
总结
NSToolbar是工具栏,通常配合NSToolbarDelegate使用。
如果在SwiftUI 新增工具栏,可以使用toolbar替代。
相关文章
1、SwiftUI在iOS中的toolbar工具栏:https://fangjunyu.com/2024/12/07/swift-toolbar%e5%b7%a5%e5%85%b7%e6%a0%8f/