【问题标题】:Obj-C: Why won't my image display in NSImageView?Obj-C:为什么我的图像不会在 NSImageView 中显示?
【发布时间】:2015-02-25 10:09:39
【问题描述】:

我有一个带有空 NSImageView 的文档窗口,并且我有一个连接到此的名为 *imageView 的插座。我也有这个属性:NSImage *image。

NSImageView 几乎填满了整个窗口。

在windowControllerDidLoadNib中:我调用如下方法:

-(void)addImageToImageView {
  imageView = [[NSImageView alloc] init];
  imageView.image = image;
}

肯定有分配给 imageView.image 的图像,但它不显示。我想可能是因为我在加载窗口之前将图像添加到视图中,但是 windowControllerDidLoadNib 中的所有代码不应该在窗口加载后运行吗?

欢迎任何帮助!

【问题讨论】:

  • 在你的窗口中创建一个到 NSImageView 的 IBOutlet 并在 IB 中连接它。为该 NSImageView 设置图像。
  • 如果 imageView 已经通过 IBOutlet 连接,为什么还要初始化它?

标签: objective-c nsimageview


【解决方案1】:

好吧:

不要分配初始化 IBOutlets,这些是对由 IB 实例化的对象的引用。简单地说,.xib 或 .storyboard 文件是以 XML 格式存储的信息,然后由您的应用程序自动取消归档(幕后的东西)。因此,您永远不应该分配您在界面构建器中添加的对象。

您在上面所做的是将变量 *imageView 从引用 IB 中的内容更改为不在屏幕上的新 imageView 实例。

您应该查看一些教程。 youtube上有一些非常好的,只要搜索它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 2015-05-04
    • 2021-03-30
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 2019-12-10
    相关资源
    最近更新 更多