我想通过子类化 NSView 并在其中完成所有视图绘制来完全实现我自己的自定义抽屉。我创建了一个自定义 NSView 类,除了实现 initWithFrame: 和 drawRect: 之外几乎不做任何事情,我已经记录了 NSView 的框架/边界(报告正确)。我还实例化了这个视图,并使用 setContentView: 将其添加到我的应用程序中的 NSDrawer 对象,以便它使用我的自定义 NSView。
但是,这仍然会绘制附加到我的应用程序 NSWindow 边缘的默认抽屉布局。如何覆盖这个默认样式,以便我可以在自定义的子类 NSView 中绘制自己的抽屉(!),而无需操作系统绘制任何默认样式? (这样我就可以自己控制抽屉的设计和尺寸,基本上模拟一个不会严格充当传统抽屉的选项卡栏。)
我通过子类化 NSWindow 而不是 NSDrawer 制作了一个自定义抽屉。这是一项繁重的工作。有一个私有对象 NSThemeFrame,位于 NSWindow 及其 contentView 之间。为了避免使用私有 API,你必须创建一个透明窗口并让其 contentView 像 NSThemeFrame 一样工作。马特·加拉格尔 (Matt Gallagher) 展示了如何:http://cocoawithlove.com/2008/12/drawing-custom-window-on-mac-os-x.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)