在NSView中绘制2个图像

时间:2018-05-26 22:40:23

标签: swift macos cocoa statusbar nsview

我正在尝试创建自定义NSView,以便将该视图应用于我的NSStatusBarButton。我想在视图中彼此相邻放置2个小图像,但我无法弄清楚如何创建自定义视图。我试图只是在视图中添加一张图片,但它没有显示在状态栏按钮中:

for (int j = 1; i < count; j++)
{
    db.Child("Some Child").GetValueAsync().ContinueWith(task =>
    {
        //MAKE A COPY OF IT
        int jCopy = j;
        Debug.Log("j: " + jCopy);

        if (task.IsFaulted)
        {
            // ERROR HANDLER
        }
        else if (task.IsCompleted)
        {
            // Some Code Here
        }
    });
}

[...]

import Cocoa

class statusBarView: NSView {

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

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

我会改变两件事。

  • 设置statusBarView的框架。

如果让button2 = statusItem2.button {

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

}

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

    myimage!.draw(in:self.frame)

希望这有帮助