FC2ブログ

頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


NSImageViewオブジェクトのサイズについて

macOSアプリ用プロジェクトで拡張子が異なる同名の画像を認識しない
↑この続き、というかこの流れで。

macOSアプリでプロジェクトに入れてある画像ファイルからNSImageオブジェクトを作成し、NSImageViewとして表示する。
以下のようなコードを書いたとする。
{
    NSImage *nsimage = [NSImage imageNamed:@"img500x344png.png"];
    NSAssert(nsimage, @"nsimage is nil");
    NSLog(@"nsimage w,h = [%f,%f]",nsimage.size.width, nsimage.size.height);
    
    
    NSImageView *imageView = [NSImageView imageViewWithImage:nsimage];//—(1)
    NSLog(@"imageView w,h = [%f,%f]",imageView.frame.size.width, imageView.frame.size.height);//—(2)
    NSAssert(imageView, @"imageView is nil”);//—(3)

    [self.view addSubview:imageView];//—(4)
}
↑前半のNSImageオブジェクト作成は前記事通り。
(1)で画面に表示するためにNSImageオブジェクトからNSImageViewオブジェクトを作成する。
(2)で作成されたNSImageViewオブジェクトのサイズを確認すると
// imageView w,h = [0.000000,0.000000]
となり、値がない。
(3)けれどオブジェクトは生成されているのでNSAssertで停止はしない。
(4)画面に表示させるつもりが、何も表示されない。

そう、これだと画像は表示されない。

imageViewにはデフォではサイズは入らないらしいので自分で入れておく必要がある。
{
   imageView.frame = NSMakeRect(x, y, nsimage.size.width, nsimage.size.height);
}
↑frameプロパティを設定しておくと意図通り画面に表示される。

NSImageオブジェクトから作成してるんだから、デフォでNSImageのサイズを入れておいてくれたらいいのにな、と言っても仕方ないので忘れないように入れよう。


Xcode 10.1
macOS Mojave 10.14.1



<< サイズを変更したNSImageオブジェクトを画像ファイルとして出力する  TopPage  macOSアプリ用プロジェクトで拡張子が異なる同名の画像を認識しない >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/1248-d494babe




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad