2016-08-18 18 views
0

enter image description here制約を追加するとNSWindowのサイズを変更できないのはなぜですか?

私がしようとしているのは、NSImageViewを追加して、サイズを変更するたびにウィンドウをいっぱいにすることです。

ただし、制約が追加されると、ウィンドウのサイズが変更されなくなります。私は

view.translatesAutoresizingMaskIntoConstraints = false 

を追加する場合

enter image description here

制約があまりにも無視されます。

enter image description here

私が何か間違ったことをやっているところ誰かが私を指すしてくださいもらえますか?

コードは、あなたのparentViewがウィンドウのcontentViewで、まずhere

答えて

1

からダウンロードすることができます。私はこのビューのデフォルトのレイアウト動作を妨害したので、今度はparentView.translatesAutoresizingMaskIntoContraints = falseという行を削除することはできません。

第二に、物事のルックスで、あなたはあなたが falseにtranslatesAutoresizingMaskIntoContraintsを設定する必要があり、このビューの画像ビューを制約するので、あなたのための完全な責任を取りたいん

最後に、追加する制約に加えて、all NSView objects come with constraints that tell Auto Layout to what extent the view's content should effect how and whether it resizesが追加されます。コンテンツによって意味されるものはビューによって異なりますが、あなたの場合はNSImageオブジェクトです。本当に

imageView.setContentCompressionResistancePriority(249, forOrientation: NSLayoutConstraintOrientation.Horizontal) 
imageView.setContentCompressionResistancePriority(249, forOrientation: NSLayoutConstraintOrientation.Vertical) 

、あなたがいないと説得力のある理由を持っていない限り:あなたはこれを変更する必要があります - あなたのコードでは、基本的に任意のコンテンツの圧縮を許可しないと言うのデフォルトの動作を、取得していますInterface BuilderでNSImageViewを設定する必要があります。 Interface Builderはラインとラインのコードを削除するだけでなく、ライブデバッグのヘルプも提供します。たとえば、私はすべてのコードをコメントアウトし、Interface Builderで最初にすべてをやり直すことでこの質問に答えました。

enter image description here

+0

は...ファインワークスどうもありがとうございました。問題は、圧縮制約のものだったという事実は、私がイメージビューを選択したときに登場破線オレンジ色の警告ラインの存在からすぐに明らかでした。 – Bavan

関連する問題