1

Image-well に画像を表示する小さなプログラムがあります。いろいろ試しているのですが、画面に何も表示されません。誰でも助けてくれます。

.h ファイル:

#import <Cocoa/Cocoa.h>
@interface TestAppDelegate : NSObject <NSApplicationDelegate>
{
    IBOutlet NSImageView *myImageView;
}
@property (assign) IBOutlet NSWindow *window;
@property (assign) IBOutlet NSImageView *myImageView;
@end

.m ファイル:

#import "TestAppDelegate.h"

@implementation TestAppDelegate

- (void)dealloc
{
    [super dealloc];
}

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    NSString * filePath = @"haha.png";  // the pic file that I added into the project
    NSImage * aImage = [NSImage imageNamed:filePath];

    if(aImage)
    {
        NSLog(aImage.name);
        NSLog(@"size %f %f",aImage.size.width,aImage.size.height);
        //both of the NSLogs work but the Image-well shows blank            
        [myImageView setImage:aImage];
    }
}
@end
4

4 に答える 4

2

交換

NSImage * aImage = [NSImage imageNamed:filePath]

NSImage * aImage = [[NSImage alloc] initWithContentsOfFile:filePath];
于 2013-06-18T08:52:38.220 に答える
0

アプリケーションのバンドルに png ファイルが見つからない可能性があります。しかし紛らわしいのは、両方の NSlog 関数 ('NSLog(aImage.name) と NSLog(@"size %f %f",aImage.size.width,aImage.size.height)') です。作業し、フィードバックしています。

これがpng画像を追加する方法です。「Resources」という新しいグループ フォルダを作成し、右クリックして準備した写真を追加しました。ここで何か間違っていたかどうかはわかりません。

私はついにそれを理解しました。「myImageView set Image:aImage」の前に「self」を追加しただけです。[self.myImageView setImage:aImage] のように。

于 2013-06-19T00:54:28.500 に答える
0

Assets.xcassetsフォルダに画像を追加したところにも同様の問題がありましたが、画像は表示されませんでした。問題は形式の問題であることが判明しました。box.png画像が画像としてエクスポートされたため、指定しましたPNG。しかし、私の Mac アプリはそれを認識しませんでした (何らかの理由で)。だから私は文字列名から削除しました.png

[NSImage imageNamed:@"box"]

作った画像がなぜか画像として認識されませんでしたPNGただし、 Apple dev docsに従って、PNG画像のファイル形式を指定する必要がないため、問題ありません。

PNG 画像の場合、ファイル名拡張子を省略できます。他のすべてのファイル形式の場合は、常にファイル名拡張子を含めてください。

于 2017-07-11T09:39:41.980 に答える
-9

NSImageView の代わりに UIImageView を使用する必要があります。

于 2013-06-18T08:44:50.610 に答える