У меня есть NSStackView
, ширина которого равна или меньше 250. Внутри у меня есть NSImageView
и NSTextView
. TextView установлен менее 150 и его объятие (я не хочу увеличивать приоритет) снижается.
Когда я добавляю строку, все раскладывается как положено. Однако, когда я скрываю imageView, textView не увеличивается до 150 и остается того же размера (второе изображение). Он будет расти только после того, как я изменю строку (третье изображение) или вызову invalidateIntrinsicContentSize
в textField.
Как правильно скрывать / отключать представления внутри NSStackView
, чтобы подпредставления увеличивались до желаемого размера (в данном случае максимум 150)?
PS: та же проблема появляется, даже если я помещаю эти подпредставления в их собственные NSStackView
с распределением, установленным на Fill, и пытаюсь скрыть левое представление стека
@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]];
}
Настройка
![enter image description here](https://i.stack.imgur.com/z12aH.png)
размер после скрытия изображения
![enter image description here](https://i.stack.imgur.com/fTKhc.png)
Размер после добавления строки
![enter image description here](https://i.stack.imgur.com/d5SS6.png)