swift - 防止 NSToolbarItem 被移除
问题描述
我想防止某些工具栏项被用户删除。它们应该仍然是可移动的,只是不可移动。
NSToolbar
我尝试使用自定义实现创建自定义子类removeItem(at:)
,但如果用户将项目拖出自定义调色板中的工具栏,似乎甚至不会调用此方法。
委托似乎也没有为此公开功能。
如何禁用某些NSToolbarItem
s 的删除?
解决方案
我不确定你是否可以阻止它被删除,但你可以实现可选的 toolbarDidRemoveItem 方法并插入你不希望它被删除的项目:
import Cocoa
class WindowController: NSWindowController, NSToolbarDelegate {
@IBOutlet weak var toolbar: Toolbar!
override func windowDidLoad() {
super.windowDidLoad()
toolbar.delegate = self
}
func toolbarDidRemoveItem(_ notification: Notification) {
if let itemIdentifier = (notification.userInfo?["item"] as? NSToolbarItem)?.itemIdentifier,
itemIdentifier.rawValue == "NSToolbarShowColorsItem" {
toolbar.insertItem(withItemIdentifier: itemIdentifier, at: 0)
}
}
}
推荐阅读
- ansible - Ansible 模板和 jinja {%block%}
- datetime - ColdFusion UTC TIME LTE 检查与 NonUTC 时间
- excel - 循环链接并下载 PDF
- python - 为什么我的刮刀没有返回美丽汤?
- c# - 什么可能导致 COM 组件被注册(在 Visual Studio 参考 COM 部分中显示)但在 Office ActiveX 组件中不可见?
- c - 从汇编代码用 C 语言设计一个函数
- kubernetes - 与具有相同子路径的 pod 中的两个容器共享 Kubernetes 中的 s3fs 卷
- vue.js - 在 ag-grid 中获取数据
- javascript - 如何解决使用 p5 创建板的问题
- rust - 安装 rust 后如何从我的 PATH 中删除生锈货物