NSWindow 究竟何时会出现圆角?
When exactly does an NSWindow get rounded corners?
(我发现了几个类似的问题,但没有什么完全相同的。有些比问题中的 OS 更老。有些在做疯狂的事情,比如完全自定义 windows。我发现没有人有有关如何使完全普通的 window 正常工作的说明。)
从 OS X Lion 开始,标准 windows 有圆角。不幸的是,我无法在我的应用程序中复制它。当一个 NSView 被推到一个 NSWindow 的角上时,有时它会保持在圆形 NSWindow 上,有时它会逃脱并形成一个方形角。
我还没想出规律。
- 即使 "draw their background" 的 NSViews 有时也会强制使用方角,所以不是那样。
- 我的自定义 NSViews 制作方角(我是否负责检查我在 NSWindow 中的位置,如果我靠近边缘,则剪裁到那个位置?),但一些标准 Cocoa 控件会这样做,也是。
例如,创建一个新的 Cocoa 项目,在主 NSWindow 中放置一个(滚动的)NSTableView 或 NSTextView,并添加布局约束,使其遵循 window 的边缘。底角是方形的!相比之下,Finder 有一个(看起来像)NSTableView,紧靠 window 的底角,它是圆形的。
如何制作一个普通的 NSWindow,底部有适当的圆角?
为了使 NSWindow 将其内容剪辑到其实际 window 边框(为什么这不是默认设置?),要设置的标志是 NSView 的 wantsLayer
.
在代码中:contentView!.wantsLayer = true
,当加载 window 时。
或在 IB 中:select 您的 Window 的根视图,然后在 "View Effects inspector" 中,在 [=29= 中选中它旁边的框](即使你没有使用 Core Animation)。
Meta:documentation for wantsLayer
讨论了很多看起来与 window 形状或裁剪完全无关的复杂事物,它甚至不是 NS 的 属性 Window,虽然 NSWindow 有一些标志声称是关于 window 圆角但不再起作用,所以我不确定任何人应该如何发现这个,除非花 2 天时间进行反复试验。我希望这个答案对其他人有帮助!
(我发现了几个类似的问题,但没有什么完全相同的。有些比问题中的 OS 更老。有些在做疯狂的事情,比如完全自定义 windows。我发现没有人有有关如何使完全普通的 window 正常工作的说明。)
从 OS X Lion 开始,标准 windows 有圆角。不幸的是,我无法在我的应用程序中复制它。当一个 NSView 被推到一个 NSWindow 的角上时,有时它会保持在圆形 NSWindow 上,有时它会逃脱并形成一个方形角。
我还没想出规律。
- 即使 "draw their background" 的 NSViews 有时也会强制使用方角,所以不是那样。
- 我的自定义 NSViews 制作方角(我是否负责检查我在 NSWindow 中的位置,如果我靠近边缘,则剪裁到那个位置?),但一些标准 Cocoa 控件会这样做,也是。
例如,创建一个新的 Cocoa 项目,在主 NSWindow 中放置一个(滚动的)NSTableView 或 NSTextView,并添加布局约束,使其遵循 window 的边缘。底角是方形的!相比之下,Finder 有一个(看起来像)NSTableView,紧靠 window 的底角,它是圆形的。
如何制作一个普通的 NSWindow,底部有适当的圆角?
为了使 NSWindow 将其内容剪辑到其实际 window 边框(为什么这不是默认设置?),要设置的标志是 NSView 的 wantsLayer
.
在代码中:
contentView!.wantsLayer = true
,当加载 window 时。或在 IB 中:select 您的 Window 的根视图,然后在 "View Effects inspector" 中,在 [=29= 中选中它旁边的框](即使你没有使用 Core Animation)。
Meta:documentation for wantsLayer
讨论了很多看起来与 window 形状或裁剪完全无关的复杂事物,它甚至不是 NS 的 属性 Window,虽然 NSWindow 有一些标志声称是关于 window 圆角但不再起作用,所以我不确定任何人应该如何发现这个,除非花 2 天时间进行反复试验。我希望这个答案对其他人有帮助!