首页 > 解决方案 > 在 NSView 中绘制 2 个图像

问题描述

我正在尝试创建一个自定义 NSView,以便我可以将该视图应用于我的 NSStatusBarButton。我想在视图中有两个相邻的小图像,但我不知道如何创建一个自定义视图来做到这一点。我试图简单地将一张图片添加到视图中,但它没有显示在状态栏按钮中:

import Cocoa

class statusBarView: NSView {

override func draw(_ dirtyRect: NSRect) {
    super.draw(dirtyRect)
    let myimage = NSImage(named:NSImage.Name("StatusBarButtonImage"))
    myimage!.draw(in: dirtyRect)
    }
}

[...]

if let button2 = statusItem2.button {
        button2.addSubview(statusBarView())
    }

有人可以帮我吗?

标签: swiftmacoscocoastatusbarnsview

解决方案


有两件事我会改变。

  • 为您的 statusBarView 设置框架。

如果让 button2 = statusItem2.button {

    let statusBarView = statusBarView()
    statusBarView.frame = button2.frame
    button2.addSubview(statusBarView)

}

  • 在视图的框架中绘制而不是在dirtyRect中

    myimage!.draw(in: self.frame)

希望这可以帮助


推荐阅读