小编Eri*_*hys的帖子

无法关闭在Interface Builder中创建的NSView实例的剪辑

在Interface Builder中定义自定义视图时,我无法弄清楚如何关闭子视图/子图层剪辑.当我以编程方式创建视图,并在StackOverflow上的许多问题中进行设置时,它适用于添加到视图的子视图和添加到view.layer的子图层.那些东西是:

((NSView*)containingWindow.contentView).wantsLayer = YES;
view.wantsLayer = YES;
view.layer.masksToBounds = NO;
Run Code Online (Sandbox Code Playgroud)

完成这些操作后(按此顺序),一切都适用于在代码中创建的视图.如果我对在IB中创建的视图做同样的事情(或其他任何事情),我无处可去.

我尝试使用定义方法的自定义NSView:

- (CALayer*)makeBackingLayer {
    CALayer* layer = [CALayer layer];
    layer.masksToBounds = NO;

    return layer;
}

- (BOOL)wantsDefaultClipping {
    return NO;
}
Run Code Online (Sandbox Code Playgroud)

没有帮助.我也尝试在IB中的View Effects中的"核心动画层"下查看框.这也没有帮助.最后,我试图关闭约束,以防万一是负责任的.也没用.

任何帮助表示赞赏.我注意到的一件事是我的后备层视图"masksToBounds"以我设置它的方式开始NO,但是当我稍后记录视图层次结构时,它在同一视图上变为YES(通过其内存地址验证).

clipping objective-c interface-builder nsview

8
推荐指数
1
解决办法
605
查看次数

标签 统计

clipping ×1

interface-builder ×1

nsview ×1

objective-c ×1