swift - 使用 IBDesignable 以编程方式从 Assets 访问 NSImage

标签 swift xcode macos interface-builder

通过 NSImage(named: "image_name") 进行常规加载会导致 IBDesignable 渲染器崩溃,因为它显然在单独的包中运行。

在 iOS 中,有一种解决方法可以显式加载在包中传递的图像:

让bundle = Bundle(对于:self.classForCoder) 让图像= UIImage(命名:“image_name”,在:捆绑,兼容:self.traitCollection)!

在 Cocoa 中,模拟初始化器丢失。

还有其他方法可以从资源目录加载图像吗?

最佳答案

如果您使用的是 Swift 3 或更高版本,您可以尝试图像文字。它应该在 Xcode 中自动完成,因此如果它不起作用,则可能表明 Assets 本身存在问题。以使用 UIButton 为例:

let myButton = UIButton()
myButton.setImage(#imageLiteral(resourceName: "image_name"), for: .normal)

通过输入 Image Literal Xcode 应该会自动完成它并创建一个小图标,您可以双击该图标来打开图像选择器并选择您要使用的图像。有关图像文字和一般文字的更完整指南可以在 here 中找到。

关于swift - 使用 IBDesignable 以编程方式从 Assets 访问 NSImage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52737445/

相关文章:

ios - GoogleMap iOS Swift 上的触摸结束事件

具有大量滚动功能的 iOS UI 自动化

bash - MV 命令行不适用于某些文件 (OSX)

ios - Swift:静态 UITableViewCell 中的 TableView

ios - 代码中的错误导致按钮并不总是执行操作

objective-c - 从xcode中的其他目录导入文件

iPhone,如何设置 View 背景,如设置屏幕灰色样式?

ios - 如何在 NSMutableArray 中对对象进行分组并在 Objective-C 中划分为单独的 NSMutableArray

regex - 删除内容,检索数字,检索用空格代替点的文本,删除其余内容

xcode - 使用 swift 从 cloudkit 中删除数据