У меня есть NSTextField в окне окна.Вертикальное изменение размера NSTextField при изменении размера окна пользователем
Я пробовал все варианты IB, но я не могу показаться, чтобы достичь следующие:
Существует довольно длинное предложение в NSTextField - при изменении размеров окна, более узкой шириной NSTextField также получает более узкой - который нажимает текст на следующую строку. Однако любой текст, который подталкивается ниже нижней части NSTextField, просто отключается. Я бы хотел, чтобы NSTextField расширял свой размер по вертикали, чтобы разместить более высокий текст.
Это можно сделать автоматически или я должен наблюдать событие изменения размера окна и пересчитать высоту NSTextField?
Мне нужно поддерживать 10.7 и 10.8, и я попытался использовать Autolayout и Autoresising, но безрезультатно.
EDIT - это код, который работал на основе ответа Джерри (и его категории от Github):
-(void)setFrame:(NSRect)frameRect{
NSRect myFrame = CGRectMake(frameRect.origin.x, frameRect.origin.y, frameRect.size.width, [self.stringValue heightForWidth:frameRect.size.width attributes:nil]);
[super setFrame: myFrame];
}
Вы можете найти полезную информацию здесь: http://stackoverflow.com/questions/10463680/how-to-let-nstextfield-grow- with-the-text-in-auto-layout – Monolo
Спасибо Monolo - на самом деле лучше использовать категорию Джерри в сочетании с - (NSSize) intrinsicContentSize, так как мне не нужно явно устанавливать кадр, и поэтому он сохранил автоматический макет по порядку. Жизнь хороша. – petenelson