macos – 当NSWindow到底是什么时候圆角?

macos – 当NSWindow到底是什么时候圆角?,第1张

概述(我发现了几个类似的问题,但没有完全相同.有些问题比有问题的 *** 作系统要老.有些人做了疯狂的事情,比如完全自定义的窗口.我找不到有关如何使普通窗口正常工作的说明.) 从OS X Lion开始,标准窗口有圆角.不幸的是,我无法在我的应用程序中复制它.当NSView被推到NSWindow的角落时,有时它会被限制在圆形NSWindow上,有时它会逃脱并形成一个方角. 我还没能弄清楚一个模式. >即使是“绘 (我发现了几个类似的问题,但没有完全相同.有些问题比有问题的 *** 作系统要老.有些人做了疯狂的事情,比如完全自定义的窗口.我找不到有关如何使普通窗口正常工作的说明.)

从OS X lion开始,标准窗口有圆角.不幸的是,我无法在我的应用程序中复制它.当NSVIEw被推到NSWindow的角落时,有时它会被限制在圆形NSWindow上,有时它会逃脱并形成一个方角.

我还没能弄清楚一个模式.

>即使是“绘制背景”的NSVIEw,也有时会强迫方角,所以不是这样.
>我的自定义NSVIEws制作方角(我负责检查我在NSWindow中的位置,并且如果我靠近边缘那么剪裁到它?),但是一些标准的Cocoa控件也会这样做.

例如,创建一个新的Cocoa项目,在主NSWindow中放置(滚动)NStableVIEw或NSTextVIEw,并添加布局约束,使其跟随窗口的边缘.底角是方形的!相比之下,Finder有一个(看起来像)NStableVIEw,就在窗户的底角,它是圆形的.

如何制作一个普通的NSWindow,底部有适当的圆角?

解决方法 设置的标志,以便让NSWindow将其内容剪辑到其实际的窗口边界(为什么这不是默认值?)是NSVIEw的wantsLayer.

>在代码中:contentVIEw!.wantsLayer = true,加载窗口时.
>或者在IB中:选择窗口的根视图,然后在“视图效果检查器”中,选中“核心动画层”中的旁边的框(即使您没有使用核心动画).

Meta:documentation for wantsLayer谈论了许多与窗口形状或剪裁无关的复杂事物,它甚至不是NSWindow的财产,而NSWindow有一些旗帜声称是关于窗口角落但是不再工作,所以我不确定任何人应该发现这个,除非花费2天的时间进行反复试验.我希望这个答案有助于其他人!

总结

以上是内存溢出为你收集整理的macos – 当NSWindow到底是什么时候圆角?全部内容,希望文章能够帮你解决macos – 当NSWindow到底是什么时候圆角?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1013752.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存