2017-05-05 6 views
1

私はXcode 8.2、Objective C、Mac OSX、iOSではないです。NSPopoverでビューの制約を更新するOSX Objective-C

私はこのようなポップオーバーに示す表示があります:私は2番目NSPopupButtonでオプションを選択すると、青色のテキストが別のLONGERテキスト(5行の代わりに、3)に置き換えられますenter image description here

を - 残念ながら、ビュー変更を反映するようには成長しません!

enter image description here

私はNSPopoverを閉じて再度開く場合にのみ、ビューが正しいです:

enter image description here

ビューが完全に自動レイアウトと制約で構築されています。すべてのサブビューに対してHEIGHTまたはWIDTHを制限する制約はなく、距離をスーパービューに設定するだけです。だから私の疑問は、どのようにNSPopupButtonで選択した後にビューを更新することができるかということです。私はすでに(viewControllerで)試しました

[self.view setNeedsLayout:YES]; 

しかし、それは動作していないようです。私はこれらの記事をチェックしますが、彼らは私の問題で私を助けていませんでした:

Resize current view using NSLayoutConstraints

編集:(NSPopupButton選択の)

新しいテキストは次のように設定されている:

[self.descriptionTextField setStringValue:self.currentSequenceItem.descriptionText];

答えて

0

解決策が見つかりました。私はそれを共有したいと思います。すべてのあなたの制約が

[yourTextField setPreferredMaxLayoutWidth:100.0f]; // Whatever you need 

を呼び出すことを確認して設定したら は、そうでない場合はテキストフィールドは、水平方向にすべてのテキストを一のライナーを作る拡大する傾向があります。

このプロパティが設定されている場合は、垂直方向にスケールされ、すべての制約が検出されたものとして更新されます。

関連する問題