Mad*_*uja 9 cocoa nsimage swift
我的资产中有大量图像.我想要做的是在OSX的状态栏中渲染图像如下:
let icon = NSImage(named: "statusIcon")
icon?.size = NSSize.init(width: 18, height: 18)
icon?.template = true
statusItem.image = icon
statusItem.menu = statusMenu
Run Code Online (Sandbox Code Playgroud)
并在我打开的一个视图中使用它:
self.dayIcon.image = NSImage(named: "statusIcon")
Run Code Online (Sandbox Code Playgroud)
问题是,一旦我设置状态栏图像,视图中的图像也会发生变化,即颜色和大小(更改为18x18)
我试过用
icon?.cacheMode = NSImageCacheMode.Never
Run Code Online (Sandbox Code Playgroud)
但是没有效果.
这是怎么回事?我可以不使用相同的图像并在不同的地方以不同的方式呈现它.它们都是不同的NSImage例子.
它们都是不同的
NSImage实例.
他们不是,而且确实是你的问题.
+ [NSImage imageNamed:]可能会返回图像的现有缓存实例.
如果要更改图像的大小而不影响可能持有引用的任何其他人,请复制它.NSImage的副本是轻量级的 - 它不会复制保存渲染(位图,在PNG情况下)数据的底层图像表示.