有什么方法可以给NSPopover上色吗?我见过像facetab等具有冷色和可调整大小的弹出画面的应用程序,这是如何做到的?
是不是有指导和提示?
谢谢。
发布于 2013-02-06 15:13:20
您可以改用MAAttachedWindow。
发布于 2013-09-29 14:29:39
使用自定义背景图将popover.contentViewController.view设置为NSView的子类(即覆盖drawRect:并使用自定义背景色填充矩形)。
然后设置popover.appearance = NSPopoverAppearanceHUD以删除视图周围的默认边框。
请注意,视图周围仍然会有一个非常细的边框,所以如果您想要完全删除它,您可能需要使用MAAttachedWindow或类似的解决方案。
发布于 2018-06-24 14:08:22
在Swift 4中:
的子类
import Cocoa
class PopoverContentView:NSView {
var backgroundView:PopoverBackgroundView?
override func viewDidMoveToWindow() {
super.viewDidMoveToWindow()
if let frameView = self.window?.contentView?.superview {
if backgroundView == nil {
backgroundView = PopoverBackgroundView(frame: frameView.bounds)
backgroundView!.autoresizingMask = NSView.AutoresizingMask([.width, .height]);
frameView.addSubview(backgroundView!, positioned: NSWindow.OrderingMode.below, relativeTo: frameView)
}
}
}
}
class PopoverBackgroundView:NSView {
override func draw(_ dirtyRect: NSRect) {
NSColor.green.set()
self.bounds.fill()
}
}在序列图像板中,选择包含弹出内容的视图,然后转到Identity Inspector
你的popover和它的三角形现在将是绿色的。
https://stackoverflow.com/questions/7680842
复制相似问题