objective-c - 在 Cocoa 中创建半透明、带边框的圆角窗口?

标签 objective-c macos cocoa user-interface

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

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

我希望具有类似于“应用程序”和“下载”窗口的效果:

enter image description here

我想我需要自己画画。但我想知道最好的方法是什么,Cocoa 中是否已经内置了任何东西可以最大限度地减少工作量?或者也许有一个第三方项目已经做到了这一点(找不到完全类似的东西)?

谢谢。

最佳答案

您可以使用

创建窗口

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

使用 NSBorderlessWindowMask 的样式掩码,这将给出一个朴素的窗口。 Dock 的机制也是如此。

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

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

您可能还需要将setOpaque设置为NO

关于objective-c - 在 Cocoa 中创建半透明、带边框的圆角窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26122392/

相关文章:

ios - Storyboard segue 崩溃和 UINavigationController 最佳实践

macos - 如何在 Mac 中向外部进程发送事件或消息?

macos - MAC OSX Intel LLVM汇编程序错误(导致Vorbis OGG加载程序崩溃)

objective-c - NSTextView 图像/附件

ios - 如何跳过最顶层 View 的手势 - iOS

iphone - NSDateFormatter 夏令时

ruby - 从 Ruby 文件调用 faSTLane 函数

objective-c - 从 NSArray 添加到核心数据模型

cocoa - 无法导入 SystemEventsApplication

ios - AFnetworking 在 Objective-C 中同步