我正在尝试从IKImageView中的文件url中显示图像,但是它仅显示一个空框架。我的项目在Xcode 10.0上的Cocoa Swift 4.2 MacOS中。
我的代码:
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)
,您将开始看到真正的错误,这是权限异常。
关闭沙箱确实可以解决此问题,但是,如果您有兴趣学习如何授予访问权限以读取磁盘上的文件,我就该主题撰写了详细的博客文章: