xcode - Swift:如何更改 NSImage 图像源?

标签 xcode swift nsview nsimage nsimageview

我是 XCode 和 Swift 的新手。尝试在 OS X 应用程序中简单地在我的 View 中设置图像。图像应该从网络加载,但我认为这并不重要。

我创建了一个新的 Cocoa 应用程序,有一个可以运行的 ListView 。在列表行的 XIB 中,我放置了一个“ ImageView ”元素,这样我就可以在每行中显示静态图像。

现在我想在行加载时更改图像 URL。我将线条从图像拖到我的 Controller 类,这将 @IBOutlet 添加到代码中。

这是我的 Controller 类代码:

import Cocoa

class ListRowViewController: NSViewController {

    @IBOutlet weak var rowImage: NSImageView!

    override var nibName: String? {
        return "ListRowViewController"
    }

    override func loadView() {
        super.loadView()

        var url = NSURL(fileURLWithPath: "http://example.com/some-image.png")

        var image = NSImage(byReferencingURL: url!)

        self.rowImage.image(image)
    }

}

现在,最后一条语句 (self.rowImage.image(image)) 中的非常有趣令人沮丧的错误消息是

Cannot convert the expression's type 'NSImage' to type 'NSImage?'.

好的。这是什么意思以及如何解决它?这与选项有某种关系吗?我尝试了 ?!,但无法弄清楚 XCode 对我的期望。

最佳答案

NSImageView

image 是一个属性,您可以直接分配给它。

self.rowImage.image = image

并且,您的 URL 错误 NSURL(fileURLWithPath:) 用于本地文件。请改用 NSURL(string:)

var url = NSURL(string: "http://example.com/some-image.png")

关于xcode - Swift:如何更改 NSImage 图像源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26774574/

相关文章:

iphone - viewDidLoad 或 viewDidDisappear 上的 Xcode 4.2 调试将在 EXC_BAD_ACCESS 上结束

ios - 一直显示滚动指示器 UITextView

objective-c - 使用 AVPlayer 无法在 ios8 中播放视频

ios - Swift:获取多个选定的 UICollectionViewCells 的值

ios - UITableViewCell 没有正确隐藏 UIView

xcode - 运行时方向颠倒

ios - 如何为 didReceiveRemoteNotification 生成组合发布器?

cocoa - 如何创建自定义 NSView 的缩小版本

cocoa - 将单页 pdf 显示为图像的最佳方式是什么?

swift - 如何在自定义 View (视网膜)中以恒定的强度绘制一条线?