在NSWindow外面画画

时间:2012-06-13 09:19:22

标签: objective-c macos cocoa user-interface nswindow

我理解如何在中绘制一个NSWindow框架。但我不明白如何实现这样的目标,例如:

Taken from a time tracking app called Eon

如果我知道,如何调用此功能,我可以进一步调查此事,但由于我不知道要查找,这是不可能的。

我很欣赏任何暗示。

非常感谢。

1 个答案:

答案 0 :(得分:6)

屏幕截图中的应用看起来像是使用自定义的NSDrawer。抽屉从窗户的一侧滑出,可以显示任何内容。

查看文档,看看它是否符合您的要求: https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Drawers/Drawers.html#//apple_ref/doc/uid/10000001-BABFIBIA

抽屉很容易设置。但是,虽然您可以完全控制抽屉内的内容,但是如果不使用私有API(例如,屏幕截图中的参差不齐的边缘),您无法控制边框的外观。如果您想要更多控制,可以使用无边框子窗口。

这是一个制作无边框完全自定义窗口的教程:http://cocoawithlove.com/2008/12/drawing-custom-window-on-mac-os-x.html

然后,您可以使用-[NSWindow addChildWindow:ordered:]将自定义窗口“附加”到父窗口。这将允许子窗口在移动时跟随父窗口。您仍然需要自己响应对父窗口大小的更改,以及其他一些属性。