【发布时间】:2016-08-16 23:31:22
【问题描述】:
(我发现了几个类似的问题,但完全不同。有些比所讨论的操作系统更老。有些正在做一些疯狂的事情,比如完全自定义的窗口。我发现没有人有关于如何使一个完全普通的窗口工作的说明正确。)
从 OS X Lion 开始,标准窗口都有圆角。不幸的是,我无法在我的应用程序中复制它。当一个 NSView 被推到一个 NSWindow 的角上时,有时它会一直被裁剪到圆形的 NSWindow 上,有时它会逃逸并形成一个方角。
我还没有弄清楚一个模式。
- 即使是“绘制背景”的 NSView 有时也会强制使用方角,所以事实并非如此。
- 我的自定义 NSView 制作了方角(我是否负责检查我在 NSWindow 中的位置,并在我靠近边缘时剪裁到那个位置?),但一些标准的 Cocoa 控件也会这样做。
例如,创建一个新的 Cocoa 项目,在主 NSWindow 中放置一个(滚动的)NSTableView 或 NSTextView,并添加布局约束,使其跟随窗口的边缘。底角是方形的!相比之下,Finder 有(看起来像)一个 NSTableView,就在窗口的底角,并且是圆角的。
如何制作一个普通的 NSWindow,底部有合适的圆角?
【问题讨论】:
-
我的建议是显示您尝试过的代码,也许这样有人可以帮助您确定需要做的不同的事情。
-
实际上没有代码。我在最后一段中描述了设置。新建 Cocoa 应用,添加 NSTableView 或 NSTextView 到窗口,运行。
-
通常任何超出默认行为的东西都需要代码。
-
是的,这就是我感到困惑的原因。 OS X 中的每个窗口都有圆角。在 Xcode 中做默认的事情给了我方角。为什么?说明这应该如何工作的文档在哪里?
-
文档是
NSWindow的文档,更具体地说是NSTexturedBackgroundWindowMask...