首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSPopover颜色

NSPopover颜色
EN

Stack Overflow用户
提问于 2011-10-07 05:45:17
回答 7查看 4.8K关注 0票数 9

有什么方法可以给NSPopover上色吗?我见过像facetab等具有冷色和可调整大小的弹出画面的应用程序,这是如何做到的?

是不是有指导和提示?

谢谢。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-02-06 15:13:20

您可以改用MAAttachedWindow

票数 0
EN

Stack Overflow用户

发布于 2013-09-29 14:29:39

使用自定义背景图将popover.contentViewController.view设置为NSView的子类(即覆盖drawRect:并使用自定义背景色填充矩形)。

然后设置popover.appearance = NSPopoverAppearanceHUD以删除视图周围的默认边框。

请注意,视图周围仍然会有一个非常细的边框,所以如果您想要完全删除它,您可能需要使用MAAttachedWindow或类似的解决方案。

票数 2
EN

Stack Overflow用户

发布于 2018-06-24 14:08:22

在Swift 4中:

  1. 转到文件->新建文件->可可类
  2. 命名您的类。例如:PopColor。确保它是NSView

的子类

  1. 将文件内容设置为:

代码语言:javascript
复制
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

  • Set
  1. to PopoverContentView

你的popover和它的三角形现在将是绿色的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7680842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档