0

プログラムを実行し、デフォルトの述語コントロールの (+) ボタンを押して別の行を追加すると、述語コントロールのサイズが増加せず、対応する NSOutlineView が下にプッシュされない理由がわかりません。

現在、行が追加されますが、行の高さに合わせてフレームが成長するのではなく、マウスホイールを使用して小さなフレーム内をスクロールする必要があります。

私は AutoLayout を使用していますが、この場合に問題があるかどうかはわかりません。制約が正しく設定されていると思います。NSOutlineView と NSPredicateView の間の距離が常に -1 になるように制約を設定して、ウィンドウがスクロールしても正しい位置にとどまるようにします。これが問題であるかどうかはわかりませんが、現時点では疑わしいです。私はそれを知っていることをあなたに知らせるだけです。

ここに画像の説明を入力

ここに画像の説明を入力

4

1 に答える 1

2

私はついに答えを見つけました!万歳!

簡単な答えは次のとおりです。SetFrame は AUTOLAYOUT では機能しません。

代わりに、制約を編集する必要があります!

これは、NSPredicateEditor に「高さ」の制約を設定し、コードに IBOutlet を設定することを意味します。

次に、次のコマンドを使用します。

NSInteger newRowCount = [_predicateEditor numberOfRows];
NSInteger rowHeight = [_predicateEditor rowHeight];

[[_predicateEditorHeight animator] setConstant:rowHeight*newRowCount];

魔法のように動作します!

于 2013-07-07T01:50:27.403 に答える