我正在尝试将图像显示在NSImageView内部。这是我的代码:
- (IBAction)openExistingDocument:(id)sender {
NSOpenPanel* panel = [NSOpenPanel openPanel];
[panel beginWithCompletionHandler:^(NSInteger result){
if (result == NSModalResponseOK) {
NSURL* theDoc = [[panel URLs] objectAtIndex:0];
[self->_imageView setImage: [NSImage imageNamed: theDoc]];
}
}];
}
谢谢!
答案 0 :(得分:0)
试试这个:
- (IBAction)openExistingDocument:(id)sender {
NSOpenPanel* panel = [NSOpenPanel openPanel];
[panel beginWithCompletionHandler:^(NSInteger result){
if (result == NSModalResponseOK) {
NSURL* theDoc = [[panel URLs] objectAtIndex:0];
[self->_imageView setImage: [[NSImage alloc] initWithContentsOfURL:theDoc]];
}
}];
当图像位于图像资源或Bundle中时,您可以使用[NSImage imageNamed:
,而从Bundle中引用图像时,会给出带有扩展名的完整图像名称,如果图像位于Image Asset文件夹中,则名称将起作用。您不应该向[NSImage imageNamed:
答案 1 :(得分:0)
如果图像在应用程序中,那么您可以直接在此方法中使用扩展名给出图像的名称
[NSImage imageNamed:@"Image1.png"];
,但如果您提供路径,则应使用此方法:
[[NSImage alloc] initWithContentsOfURL:theDoc];
您还可以检查此路径中是否存在文件,只是为了确保您正确行事。
我希望这有助于你