我有一个 NSTabViewController
,它附加了 6 个选项卡(NSViewController
)。在 IB 中,我可以从一些预定义的过渡中进行选择,但我不喜欢其中任何一个。所以我的问题是:我如何进行自己的过渡?
PS:我在我的项目中使用 StoryBoards。
最佳答案
我使用以下方法取得了有限的成功(仍在寻找更好的解决方案,或消除出现的一些视觉问题)。
创建 NSTabViewController
的子类,确保将 Storyboard中选项卡 View Controller 的自定义类设置为新创建的子类。
默认情况下,NSTabViewController
在从一个选项卡 View 项切换到另一个时进行以下三个调用:
tabView:willSelectTabViewItem:
transitionFromViewController:toViewController:options:completionHandler:
tabView:didSelectTabViewItem:
在您的自定义子类中,您可以覆盖 transitionFromViewController:toViewController:options:completionHandler:
来实现您自己的切换方法。
我使用了类似下面的东西:
- (void)transitionFromViewController:(NSViewController *)fromViewController
toViewController:(NSViewController *)toViewController
options:(NSViewControllerTransitionOptions)options
completionHandler:(void (^)(void))completion {
NSWindow *window = self.view.window;
NSView *superview = fromViewController.view.superview;
[superview replaceSubview:fromViewController.view with:blankView()];
[window resizeToSize:toViewController.view.frame.size]; // category defined elsewhere
[superview replaceSubview:blankView() with:toViewController.view];
window.title = toViewController.title;
}
关于swift - NSTabViewController - 如何创建自定义转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36509246/