1

Obj-C/Cocoa プログラミングは初めてで、NSImageView に関する問題に直面しています。
私の目標は、ユーザーがドラッグ アンド ドロップで画像を配置できるアプリを作成することです。

問題は次のとおりです。ウィンドウよりも大きい画像をドロップすると、ウィンドウのサイズが画像サイズに変更されます。これは望ましくありません
私は NSImageView を NSScrollView に入れたので、画像の特定の部分のみを表示する必要があり、ユーザーはスライダーを動かして全体を表示する (または単にウィンドウのサイズを変更する) 必要があります..

これが私のXIB階層です(関係部分):

  • 意見
    • NSScrollView
      • 意見
        • NSImageView


私の NSImageView のコードには、(その問題について) があります:

[self setImageScaling:NSScaleProportionally];
[self setImage:newImage];


: スライダーは画像ではなくビューを移動するように見えます
注 2 :ウィンドウのサイズを画像よりも小さいサイズに変更することはできません

4

2 に答える 2

1

私には、ビューのサイズが適切ではないように思えます。跳ね返り、ビューがサブビューをクリップしないため、少しスクロールすることはできますが、元の位置に戻ります。

  1. NSImageView が画像全体を表示するのに十分な大きさかどうかを確認してください。(フレームまたは境界の幅と高さを確認してください)

    十分な大きさでない場合は、これを行います(新しい画像を設定するメソッド内):

    self.myImageView.frame = NSMakeRect(0.0,0.0, self.myImageView.image.size.width, self.myImageView.image.size.height);

  2. それに応じて、スクロール ビュー ビューのサイズを調整します。

    self.myScrollView.view.frame = self.myImageView.frame;

これで、スクロール可能な領域が画像全体をカバーするのに十分な大きさになるはずです。

これがうまくいく場合は、マットにも彼の答えに賛成票を投じて、いくらかの信用を与えてください.彼がすでに投稿したものに。

于 2013-09-02T13:05:55.877 に答える