gpt4 book ai didi

objective-c - 子类化 NSDrawer 的 contentView 以实现完全自定义的抽屉

转载 作者:行者123 更新时间:2023-12-03 16:39:04 25 4
gpt4 key购买 nike

我想通过子类化 NSView 并在其中完成所有 View 绘制来完全实现我自己的自定义抽屉。我创建了一个自定义 NSView 类,除了实现 initWithFrame: 和 drawRect: 之外几乎不做任何事情,我已经记录了 NSView 的框架/边界(报告正确)。我还实例化了此 View ,并使用 setContentView: 将其添加到我的应用程序中的 NSDrawer 对象,以便它使用我的自定义 NSView。

但是,这仍然会绘制附加到我的应用程序 NSWindow 边缘的默认抽屉布局。如何覆盖这个默认样式,以便我可以在自定义的子类 NSView 中绘制自己的抽屉(!),而无需操作系统绘制任何默认样式? (这样我就可以自己控制抽屉的设计和大小,基本上模拟一个不会严格充当传统抽屉的选项卡栏。)

最佳答案

我通过子类化 NSWindow 而不是 NSDrawer 来制作自定义抽屉。这是一项繁重的工作。有一个私有(private)对象 NSThemeFrame,位于 NSWindow 及其 contentView 之间。为了避免使用私有(private) API,你必须创建一个透明窗口并让其 contentView 像 NSThemeFrame 一样工作。 Matt Gallagher 展示了如何:http://cocoawithlove.com/2008/12/drawing-custom-window-on-mac-os-x.html

关于objective-c - 子类化 NSDrawer 的 contentView 以实现完全自定义的抽屉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4868652/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com