IKImageView 不显示图片 (Cocoa Swift)
IKImageView don't show the picture (Cocoa Swift)
我试图在 IKImageView 中显示来自文件 url 的图像,但它只显示一个空框。我的项目在 Cocoa Swift 4.2 MacOS on Xcode 10.0.
我的代码:
class ViewController: NSViewController {
@IBOutlet weak var imagePreView: IKImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
imagePreView.wantsLayer = true
imagePreView.setImageWith(URL(fileURLWithPath: "My_file_URL"))
imagePreView.isHidden = false
}
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
}
我是做错了什么还是遗漏了什么?我已经搜索了几个小时,但我仍然没有在 Swift 中找到任何关于 IKImageView 的有用信息,或者它们都已过时,例如 this.
扩展@Willeke 上面的评论,这不起作用的原因是该应用程序(默认情况下)是沙盒并且无法访问磁盘上的随机文件。
如果您 运行 遇到这样的问题,NSImage
、IKImageView
等在尝试从磁盘加载图像时都会无提示地失败。
如果您尝试使用 FileManager
或 Data(contentsOf: url)
,那么您将开始看到真正的错误,即权限异常。
关闭沙盒确实可以解决这个问题,但如果您有兴趣了解如何授予读取磁盘文件的权限,我写了一篇关于该主题的详细博客 post:
我试图在 IKImageView 中显示来自文件 url 的图像,但它只显示一个空框。我的项目在 Cocoa Swift 4.2 MacOS on Xcode 10.0.
我的代码:
class ViewController: NSViewController {
@IBOutlet weak var imagePreView: IKImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
imagePreView.wantsLayer = true
imagePreView.setImageWith(URL(fileURLWithPath: "My_file_URL"))
imagePreView.isHidden = false
}
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
}
我是做错了什么还是遗漏了什么?我已经搜索了几个小时,但我仍然没有在 Swift 中找到任何关于 IKImageView 的有用信息,或者它们都已过时,例如 this.
扩展@Willeke 上面的评论,这不起作用的原因是该应用程序(默认情况下)是沙盒并且无法访问磁盘上的随机文件。
如果您 运行 遇到这样的问题,NSImage
、IKImageView
等在尝试从磁盘加载图像时都会无提示地失败。
如果您尝试使用 FileManager
或 Data(contentsOf: url)
,那么您将开始看到真正的错误,即权限异常。
关闭沙盒确实可以解决这个问题,但如果您有兴趣了解如何授予读取磁盘文件的权限,我写了一篇关于该主题的详细博客 post: