macOS工具栏NSToolbar
macOS工具栏NSToolbar

macOS工具栏NSToolbar

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/

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注