簡體   English   中英

如何停止使用自動版式調整NSView子視圖的大小

[英]How do I stop an NSView subview being resized with Auto Layout

我對新的自動版式功能有疑問。 我添加了一個名為tableView的NSView作為workingBox的子視圖。 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的高度,但是如果我將其鎖定在頂部,則會阻止超級視圖的增長

我無法通過在代碼中添加約束來完成這項工作。 但是,在Interface Builder中,我可以看到存在問題的NSView約束被稱為“底部對齊”。 我在檢查器中將此優先級更改為1,並在窗口擴展時阻止了NSView拉伸。 我認為我在上面的評論中提到的這種自動添加的約束一直都是問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM