【问题标题】:NSTabViewController - How to create a custom transition?NSTabViewController - 如何创建自定义过渡?
【发布时间】:2016-07-30 06:52:42
【问题描述】:

我有一个NSTabViewController,它附加了 6 个标签 (NSViewControllers)。在 IB 中,我可以从一些预定义的转换中进行选择,但我不喜欢其中任何一个。所以我的问题是:我怎样才能进行自己的过渡?

PS:我在我的项目中使用 StoryBoards。

【问题讨论】:

    标签: swift xcode macos storyboard nstabviewcontroller


    【解决方案1】:

    我使用以下方法取得了有限的成功(仍在寻找更好的解决方案,或消除出现的一些视觉问题)。

    创建NSTabViewController 的子类,确保将情节提要中选项卡视图控制器的自定义类设置为新创建的子类。

    默认情况下,NSTabViewController 在从一个选项卡视图项切换到另一个时会进行以下三个调用:

    1. tabView:willSelectTabViewItem:

    2. transitionFromViewController:toViewController:options:completionHandler:

    3. 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;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-25
      • 2019-12-15
      • 2012-03-20
      • 2014-05-26
      • 1970-01-01
      • 1970-01-01
      • 2013-11-23
      • 1970-01-01
      相关资源
      最近更新 更多