5

私はOSXアプリ開発で遊んでいます。私は完全に初心者です。iOSアプリ開発のように簡単だと思いました。しかし、これに数日行った後、それはそれほど簡単ではないようです。

これが私がやろうとしていることです。NSWindowがあります。私がImageWellを入れたところ(名前は?lol)Well "Image Well"、それはNSImageViewです(しゃれは意図されていません)。

したがって、NSWindowのサイズに合わせてNSImageViewのフレームのサイズを変更したいだけです。とても簡単です。

これが私がしたことですが、機能していません:

imageViewとしてのNSImageView。

NSWindow windowDidResizeおよびwindowDidResizeのデリゲートメソッドNSWindowDelegateメソッドを記述し、その中の画像ビューのimageViewフレームのフレームサイズのサイズを変更するだけです。コード:(NSImageViewはimageViewというプロパティにあります。)

- (void)windowDidResize:(NSNotification *)notification {

   // NSLog(@"resized");

    NSRect zWindowRect = [[self window]frame];
    NSRect zContentRect = [[self window]contentRectForFrameRect:zWindowRect];

    [self.imageView setFrameSize:NSMakeSize(zContentRect.size.width,
                                            zContentRect.size.height)];

    [self.imageView setNeedsDisplay:YES];


}

このメソッドは呼び出されます(でテストされていますNSLog()NSImageViewが、元のサイズのままです。接続に問題がないことを確認しましたIBOutlet

何が得られますか?なぜNSImageViewサイズ変更しないのですか?

4

1 に答える 1

3

Ok。これは習慣になりつつあります。もう一度自分の質問に答えます。

この動作は、Interface Builder の「自動レイアウト」機能によるものと思われます。

これを修正するには、MainMenu.xib で「自動レイアウト」を無効にします。 説明はこちら

サイトの有効期限が切れた場合: MainMenu.xib をクリックして、XCode の [ユーティリティ] パネルの最初のタブ [ファイル] に移動します。そして、その横に「自動レイアウトを使用」チェックボックスがあるはずです。チェックを外します。

于 2012-10-14T23:40:49.770 に答える