我正在使用NSPopover,并且我将NSViewController放入其中以显示为来自NSStatusItem的自定义视图。除了具有角半径的NSButton之外,大多数视图控制器都能正确显示。在应用圆角的地方有一些额外的白色泄漏。在实际应用程序中显示按钮,这个问题不会发生。
我觉得必须对我设置的NSPopover外观做一些事情" NSAppearanceNameAqua"。
NSButtons位于NSView中,显示在NSTableView中并设置为此样式。
self.createdButton.wantsLayer = true
self.createdButton.layer?.backgroundColor = Utils.blackColor().CGColor
self.createdButton.layer?.masksToBounds = true
self.createdButton.layer?.cornerRadius = 5
顶部图片是实际应用程序打开时的图像。 底部图像是在NSPopover中显示视图控制器时。
答案 0 :(得分:0)
使用贝塞尔曲线创建角半径,即
NSBezierPath *path = [NSBezierPath bezierPathWithRoundedRect:view.bounds xRadius:3 yRadius:3];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = view.bounds;
maskLayer.path = path.toCGPath;
self.containerView.layer.mask = maskLayer;