可可 – NSTabViewController忽略转换和标题传播设置

我正在尝试使用故事板和新的nstabviewController类为我的应用程序创建一个首选项面板.

我可以让它工作,但故事板中的过渡设置似乎被忽略.它只是从一个选项卡跳转到下一个选项卡,窗口的大小会立即更改.

我以为这可能取决于我是否使用autolayout,但是当我切换它时,似乎没有改变过渡行为.

我也有’传播标题’设置检查.我曾经期望它会选择标签项的标签或视图控制器的标题,并将其作为窗口标题传播,但它似乎不这样做.

有人有这个工作吗?

这是一个简单的示例应用程序,我正在测试:https://www.dropbox.com/s/roxaplxy5gtlqns/Again.zip?dl=0

更新:感谢Pierre的工作.通过对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

解决方法

您需要使nstabviewController成为nstabview的委托.

在Interface Builder中,将“No Shadow Tab View”从“控件”拖动到“Tab View Controller”,并设置代理插座.

人们期望Interface Builder在创建新的制表视图控制器时正确设置.它不是.

相关文章

我正在用TitaniumDeveloper编写一个应用程序,它允许我使用Ja...
我的问题是当我尝试从UIWebView中调用我的AngularJS应用程序...
我想获取在我的Mac上运行的所有前台应用程序的应用程序图标....
我是一名PHP开发人员,我使用MVC模式和面向对象的代码.我真的...
OSX中的SetTimer在Windows中是否有任何等效功能?我正在使用...
我不确定引擎盖下到底发生了什么,但这是我的设置,示例代码和...