我有一个NSStackView
,其宽度等于或小于250。内部有NSImageView
和NSTextView
。 TextView设置为小于150,并且它的拥抱(我不想增加优先级)降低了。
当我添加字符串时,所有布局均按预期进行。但是,当我隐藏imageView时,textView不会增加到150,并且保持相同的大小(第二张图像)。仅当我更改字符串(第三张图片)或在textField上调用invalidateIntrinsicContentSize
后,它才会增长。
在NSStackView
中隐藏/分离视图的正确方法是什么,以便子视图将增长到所需的大小(在这种情况下,最大为150)?
PS:即使我将那些子视图放入其自己的NSStackView
,且分布设置为Fill,并尝试隐藏左stackview,也会出现同样的问题
@property (weak) IBOutlet NSWindow *window;
@property (weak) IBOutlet NSTextField *textField;
@property (weak) IBOutlet NSImageView *imageView;
@property (weak) IBOutlet NSStackView *stackView;
@end
@implementation AppDelegate
- (IBAction)appendString:(NSButton *)sender
{
NSString *string = [self.textField stringValue];
self.textField.stringValue = [NSString stringWithFormat:@"%@ + string", string];
}
- (IBAction)hideImageView:(NSButton *)sender
{
[[self imageView] setHidden:![[self imageView] isHidden]];
// [[self textField] invalidateIntrinsicContentSize];
}
- (IBAction)hideTextview:(NSButton *)sender
{
[[self textField] setHidden:![[self textField] isHidden]];
}