Как сделать родительский элемент / контейнер DIV растут по мере добавления детей DIV. Также в Interface Builder перетащите два пользовательских представления в проект и добавьте несколько текстовых полей, кнопок и т. Д.
Создайте класс контроллера (например, myController) со следующими IBOutlet
s:
IBOutlet NSScrollView * myScrollView
IBOutlet NSView * myCustomView1
IBOutlet NSView * myCustomView2
Подключите выходы к элементам управления в Interface Builder.
Создайте подкласс NSView
, чтобы перевернуть documentView
:
@implementation myFlippedView
-(id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
if (self) {
// Initialization code here.
}
return self;
}
-(void)drawRect:(NSRect)dirtyRect {
// Drawing code here.
}
-(BOOL)isFlipped {
return YES;
}
Выберите documentView
из NSScrollView
в Интерфейсном Разработчике и сделайте его подклассом myFlippedView
. В Интерфейсном Разработчике вы должны выбрать NSScrollView, а затем щелкнуть его еще раз, чтобы перейти к documentView
, или измените библиотеку IB, чтобы отобразить древовидное представление, и выберите дочернее пользовательское представление NSScrollView
.
В классе myController
поменяйте местами представления с помощью следующих методов:
-(void)awakeFromNib {
[myScrollView setDocumentView:myCustomView1];
}
-(IBAction)swapViews:(id)sender {
if ([myScrollView documentView] == myCustomView1) {
[myScrollView setDocumentView:myCustomView2];
} else {
[myScrollView setDocumentView:myCustomView1];
}
}
Наконец, подключите кнопку в своем проекте к действию swapViews
, построить и запустить.
Проблема в том, что координаты не были разрешены, как ожидалось с isFlipped.