Я пытаюсь создать панель настроек для своего приложения, используя раскадровки и новый класс NSTabViewController.
Я могу заставить его работать, но настройка перехода в раскадровке, похоже, игнорируется. Он просто перескакивает с одной вкладки на другую, причем размер окна меняется мгновенно.
Я думал, что это может зависеть от того, использую ли я автоопределение или нет, но он не изменил поведение перехода, когда я переключил его.
У меня также установлен параметр 'Propagates title'. Я ожидал, что он примет метку элемента вкладки или заголовок контроллера представления и распространит его как заголовок окна, но, похоже, это не так.
Кто-нибудь получил это, чтобы работать?
Вот пример простого примера, с которым я тестирую: https://www.dropbox.com/s/roxaplxy5gtlqns/Again.zip?dl=0
Обновление: Получил эту работу благодаря Пьеру. Завершено создание красивого окна настроек перехода путем подклассификации NSTabViewController следующим образом:
@implementation MCPreferencesTabViewController
-(void)tabView:(NSTabView *)tabView willSelectTabViewItem:(NSTabViewItem *)tabViewItem
{
[super tabView:tabView willSelectTabViewItem:tabViewItem];
NSTabViewItem *currentTabItem = tabView.selectedTabViewItem;
currentTabItem.view.hidden = YES;
tabViewItem.view.hidden = YES;
NSWindow *window = self.view.window;
NSSize contentSize = tabViewItem.view.fittingSize;
NSSize newWindowSize = [window frameRectForContentRect:(CGRect){CGPointZero, contentSize}].size;
NSRect frame = [window frame];
frame.origin.y += frame.size.height;
frame.origin.y -= newWindowSize.height;
frame.size = newWindowSize;
[self.view.window setFrame:frame display:NO animate:YES];
}
- (void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem
{
[super tabView:tabView didSelectTabViewItem:tabViewItem];
tabViewItem.view.hidden = NO;
}
@end