gpt4 book ai didi

objective-c - 无法使用 NSOpenPanel 打开图像

转载 作者:行者123 更新时间:2023-12-03 17:29:35 25 4
gpt4 key购买 nike

我使用下面的代码使用 NSOpenPanel 打开图像,但不起作用

//panel=NSOpenPanel
NSString *imgg = [NSString stringWithFormat:@"%@",panel.URL];
self.imgUser.image=[NSImage imageNamed:imgg];

最佳答案

问题是 +[NSImage imageNamed:] 不通过 URL 加载图像。如果您阅读文档,它会解释它的实际用途:它会查找以该名称存储在缓存中的图像,或者以该文件名存储在应用程序包或 AppKit 框架中的图像。

有很多方法可以实际通过 URL 打开图像。您可能正在寻找的是:

NSImage *image = [[[NSImage alloc] initWithContentsOfURL:panel.URL] autorelease];

此外,作为一个附带问题,您尝试将 URL 转换为路径的方式不正确。如果您有 file://localhost/Users/user437064/Pictures/mypic.jpg 的 NSURL,只需将其转换为字符串即可获得 @"file://localhost/Users/user437064/Pictures/mypic.jpg"。这不是可以与基于路径的 API 一起使用的路径。你真正想要的是@“/Users/user437064/Pictures/mypic.jpg”,而你得到它的方式是-[NSURL path]。所以“NSString *imgg = [panel.URL 路径];”。但这无关紧要;除非您需要处理非常旧版本的 OS X 或过时的 API,否则几乎总是有一个方法为每个采用路径的方法采用 URL,并且通常不推荐使用基于路径的方法。

作为一个更离题的问题,您不需要 stringWithFormat: 将某些内容转换为字符串; “[panel.URL description]”给出的结果与“[NSString stringWithFormat:@"%@", panel.URL]”完全相同,更简单,更高效。

关于objective-c - 无法使用 NSOpenPanel 打开图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10355591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com