我只是关于Appkit和macOS编程的新手,我想在App运行时更改StatusBar图标。 (是的,我正在制作菜单栏应用程序)
问题是我可以制作3600张图像以上...没办法!那是不可能的...
所以,我要做的就是让计算机生成每个图像并每秒钟更改应用程序的StatusBar图标。
首先,需要NSImage,因此请更改状态栏图标。
下面的代码是初始代码。
statusBar = NSStatusBar.init()
statusItem = statusBar.statusItem(withLength: 70.0)
statusBarButton = statusItem.button!
statusBarButton.image = NSImage(named: NSImage.Name("AppIcon"))
statusBarButton.image?.size = NSSize(width: 18.0, height: 18.0)
statusBarButton.imagePosition = .imageRight
statusBarButton.title = "Menu Bar App"
[确定,NSImage(named: NSImage.Name("AppIcon"))
是我之前准备的初始应用程序图标图像,然后可以将某些内容转换为NSImage
。
我已经搜索了很多有关可以绘制图像的内容,但是似乎没有什么是适当或适当的:(
所以这就是我要发布此问题的原因。
有没有办法每秒生成图像?
请帮助我
使用NSView
属性创建自定义NSImage
并实现drawRect
,简单示例
class MyView: NSView {
var image : NSImage? {
didSet {
needsDisplay = true
}
}
init(frame frameRect: NSRect, image : NSImage?) {
self.image = image
super.init(frame: frameRect)
}
required init?(coder: NSCoder) {
super.init(coder: coder)
}
override func draw(_ dirtyRect: NSRect) {
image?.draw(at: .zero, from: bounds, operation: .sourceOver, fraction: 1.0)
}
}
将MyView
的实例添加到statusBarButton
的子视图中。
image
属性后,将对其进行绘制。