4

画像をビューに入れようとしています。これは私のコードです:

NSImageView *imView = [[NSImageView alloc] initWithFrame:NSMakeRect(0, 0, 480, 360)];
    NSImage *myImage = [[NSImage alloc] initByReferencingFile:@"image.png"];
    [imView setImage:myImage];
    [theView addSubview:imView];
    [window setContentView:theView];

ただし、ウィンドウは空白です(画像は描画されません)。たとえば、ビューにテキストフィールドを配置すると、完全に機能しますが、NSImageViewでは機能しません...コンソールを確認しましたが、警告/エラーメッセージはありません...ありがとうございます。

4

1 に答える 1

9

[imView isValid]falseを返すので、これはNSImageそのファイルに基づいてイメージを作成できなかったことを意味します。一般的な理由は、ファイルが見つからなかったことです。のドキュメントから-initByReferencingFile:

filename 目的の画像データを含むファイルを指定するフルパス名または相対パス名。相対パスは、現在の作業ディレクトリからの相対パスである必要があります。

これは、の動作が-initByReferencingFile:現在のディレクトリに依存することを意味し、理想的にはフルパス名を渡す必要があります。

より良い解決策は+imageNamed:、2つの理由から代わりに使用することです。それは、イメージキャッシュを使用することと、アプリケーションバンドル内のファイルを検索できることです。

于 2011-04-11T05:11:28.337 に答える