NSView如何实现类似于UIView中的clipsToBounds功能(即不切割其SubView)
Posted daishuss
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NSView如何实现类似于UIView中的clipsToBounds功能(即不切割其SubView)相关的知识,希望对你有一定的参考价值。
在ios开发中,UIView有一个clipsToBounds属性,可以设置UIView是否切割Subview超出本身的部分,Apple Developer文档的定义如下:
但是在Mac开发时,首先因为相关的资料在网上很少,NSView也没有这个属性,所以对于如何在NSView中实现类似于clipsToBounds的功能困扰了我很久,最终在StackOverFlow和简书上找到了相关的解决方法
1?? 通过重写wantsDefaultClipping属性 (不推荐)
参考资料:https://stackoverflow.com/questions/17793022/make-nsview-not-clip-subviews-outside-of-its-bounds/19991676#19991676
实现:对于父类和子类都要Override wantsDefaultClipping
override var wantsDefaultClipping: Bool { return false }
2?? 推荐方法
参考资料:https://www.jianshu.com/p/42aa3f79117b
//对于父类 [superView setWantsLayer:true]; superView.layer.masksToBounds = false; //对于子类 [subView setWantsLayer:true];
搞定啦~配合上Masonry自动布局以后效果如图
以上是关于NSView如何实现类似于UIView中的clipsToBounds功能(即不切割其SubView)的主要内容,如果未能解决你的问题,请参考以下文章
使用来自 XIB 的自定义 NSView/UIView 子类?
如何在 UIView 中嵌入表格视图,类似于在 iBooks 中用于字体选择的方式?