0

新しい自動レイアウト機能に問題があります。workingBox のサブビューとして tableView という NSView を追加します。workingBox には、Interface Builder で追加された他のサブビューもいくつか含まれています

[self.window setFrame:frame display:YES animate:YES];
[workingBox addSubview:tableView];

私の問題は、他のサブビューのいずれかが tableView に触れると、アニメーションでサイズが変更されることです。tableView が追加されている場所の近くにないサブビューは、正しいサイズのままです。サイズ変更されているサブビューに NSViewNotSizable resizeMask を設定しようとしましたが、機能しません。機能する唯一のことは、サブビューを上に移動することです(間違った位置に.


編集:コードに制約を追加しました:

NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(divider);
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[divider(==1)]"
                                                               options:0
                                                               metrics:nil
                                                                 views:viewsDictionary];
[workingBox addConstraints:constraints];  

これにより、NSView の高さが 1px に保たれますが、上部にロックすると、スーパービューが大きくなりません

4

1 に答える 1

1

コードに制約を追加しても、これを機能させることができませんでした。ただし、Interface Builder では、問題の NSView に「Bottom Alignment」という名前の制約があることがわかりました。インスペクターでこれを優先度1に変更すると、ウィンドウが拡大されたときにNSViewが引き伸ばされなくなりました。上記のコメントで言及したこの自動追加された制約は、ずっと問題だったと思います。

于 2012-09-25T10:15:57.120 に答える