在Cocoa创建半透明的圆形角落边框窗口?

时间:2014-09-30 13:42:09

标签: objective-c macos cocoa user-interface

创建半透明窗口的最佳方法是什么,它有圆角,边框和箭头周围有轮廓,但没有标题栏和按钮。

当用户点击菜单栏图标时,窗口将从菜单栏弹出。

我希望效果类似于"应用程序"和"下载"窗口:

enter image description here

我想我自己需要画画。但是我想知道最好的方法是什么,以及Cocoa中是否有任何可以减少工作量的东西?或者可能已经完成了第三方项目(无法找到完全相同的东西)?

感谢。

2 个答案:

答案 0 :(得分:1)

您可以使用

创建窗口

- (id)initWithContentRect:(NSRect)contentRect styleMask:(NSUInteger)windowStyle backing:(NSBackingStoreType)bufferingType defer:(BOOL)deferCreation

使用NSBorderlessWindowMask的样式掩码,它将提供一个朴实无华的窗口。它的Dock如何运用它的机制。

请注意,您必须使用此样式初始化,否则无法更改已初始化的Windows样式。

通过NSView访问者将自定义contentView与所需的背景自定义绘图放在Windows视图堆栈的顶部。

您可能还需要setOpaqueNO

答案 1 :(得分:1)

你正在寻找的东西已经做了很多。真的太多了。 您要查看的课程如下。

NSStatusItem 这是出现在右侧菜单栏的状态栏部分中的内容。

NSMenu 如果您希望从应用程序菜单中的菜单中进行此操作,则需要在菜单中对视图执行一些巧妙的操作。

NSWindow 正如另一张海报所说,无边框窗口是实现这一目标的一种方式。

NSPopover 这是另一种方式。结合上述内容,一种奇特的技术是使用一个称为封面窗口的清晰窗口,然后在单击菜单或状态菜单时,从透明封面窗口中的下方点调用弹出窗口。

这应该足以让你开始研究你应该研究的内容。

除此之外,仔细阅读Mac App Store并查看cocoacontrols.com和GitHub。