标签: nstabviewcontroller

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
Run Code Online (Sandbox Code Playgroud)

cocoa nstabviewcontroller

16
推荐指数
2
解决办法
2605
查看次数

隐藏故事板中NSTabViewController中的标签栏

有人知道如何隐藏标签栏NSTabView吗?只有iOS版本,但我需要一个OSX解决方案.

这是我的故事板:

在此输入图像描述

我想隐藏标签栏......我在哪里必须这样做,我该怎么做?

macos cocoa nstabview nstabviewcontroller

11
推荐指数
1
解决办法
2050
查看次数

使用SearchController搜索时使用标签栏获取黑屏

我有一个应用程序,其中一个标签栏控制器嵌入在导航控制器中.该应用程序有2个选项卡,第一个(搜索)有一个使用UISearchController实现的搜索栏.如果我在搜索时从此选项卡切换到其他选项卡(下载),则在其他选项卡中会发生两件事 -

  • 第二个选项卡中的导航栏(下载)消失
  • 当我回到第一个标签(搜索)时,它显示黑屏

黑屏

我使用故事板完成了所有这些.

这是我的SearchViewController

import UIKit
import Alamofire
import SwiftyJSON

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource, UISearchResultsUpdating, UISearchBarDelegate{

    //MARK: Variables
    var papers = [Paper]()
    var filteredPapers = [Paper]()
    let searchController = UISearchController(searchResultsController: nil)

    // MARK: Outlets
    @IBOutlet weak var activityIndicator: UIActivityIndicatorView!
    @IBOutlet var table: UITableView!
    @IBOutlet weak var loadingMessageLabel: UILabel!
    @IBOutlet weak var retryButton: UIButton!

    //MARK: Actions
    @IBAction func retryButton(sender: UIButton) {
        self.loadingMessageLabel.hidden = false
        self.loadingMessageLabel.text = "While the satellite moves into position..."
        self.activityIndicator.hidden = false
        self.activityIndicator.startAnimating()
        self.retryButton.hidden = …
Run Code Online (Sandbox Code Playgroud)

uinavigationcontroller ios uisearchcontroller nstabviewcontroller

9
推荐指数
1
解决办法
3736
查看次数

基于NSSplitViewController的应用程序几乎从不以正确的大小启动

我有这个应用程序使用一个NSSplitViewController作为根,并 NSTabViewController作为其detailViewController连接.

此应用程序将设置为1024x768启动.左侧窗格应以320x768启动,右侧窗格(tabViewController所在的位置)应在704x768处启动.

我运行这个应用程序10次,9次将以不正确的大小(约500x500)启动.其他奇怪的是这个应用程序不应该是可扩展的,但如果你将鼠标悬停在窗口边框附近,你会看到光标指示要缩放.

我希望它以正确的大小启动,并且没有可扩展的选项.

这两个设置都在界面构建器上,但被忽略.

您可以在此处下载演示此问题的示例项目.多次停止并运行项目以查看问题.

我该如何解决这个问题?

macos cocoa nstabviewcontroller nssplitviewcontroller

8
推荐指数
1
解决办法
2468
查看次数

NSTabView在Interface Builder中附带了重复按钮?

如果我将选项卡视图控制器拖到OS X应用程序的故事板中,则选项卡视图按钮似乎行为异常.你能帮我理解发生了什么吗?

这是一个新项目的最小示例,我只需用新的Tab View Controller替换默认的空View Controller:

Interface Builder中的最小设置

突出显示的选项卡视图No Shadow Tab View默认显示,这意味着选项卡视图的样式Tabless位于"属性"检查器中.

场景列表中的选项卡视图下方还有两个选项卡视图项.

如果我构建并运行,结果如下所示:

选项卡控件可见,但选项卡视图没有挡板.看起来显示的选项卡按钮实际上是两个额外的选项卡视图项,而不是选项卡视图本身的本机按钮.

如果我将Tab View的样式更改为Top Tabs默认值Tabless,我会得到一个挡板,但重复的标签按钮:

重复按钮

如果我将其更改为Tabless With Bezel,则表圈位于标签按钮下方,而不是正确地坐在按钮下方:

挡板位置错误

我无法弄清楚这一点.为什么有两组标签按钮开始(默认情况下隐藏"真实"按钮)?两个额外的选项卡视图项似乎是完全冗余的,但它们无法删除.

使用Interface Builder和Tab View Controller时,有没有办法让标签栏有适当的挡板?

macos xcode cocoa interface-builder nstabviewcontroller

5
推荐指数
1
解决办法
416
查看次数

NSTabViewController-如何创建自定义过渡?

我有一个NSTabViewController附有6个标签NSViewController的。从IB,我可以从一些预定义的过渡中进行选择,但我不喜欢其中任何一个。所以我的问题是:我如何进行自己的过渡?

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

macos xcode storyboard swift nstabviewcontroller

5
推荐指数
1
解决办法
173
查看次数

将 contentViewController 设置为 NSTabViewController 后,NSWindow 以错误的大小启动

我有一个 Xcode 项目,NSWindowControllercontentViewController设置为NSViewController. 我最近删除NSViewController从故事板子类,并取代了contentViewController用一个NSTabViewController子类。

现在,当我运行应用程序时,NSWindow打开的大小为 500x500,而不是第一个选项卡的大小。更重要的是,有没有看法,我可以在具有尺寸500×500的故事板看到,而且尺寸不是编程,无论是。窗口本身设置为不同的大小,NSTabViewController第一个NSViewController.

我假设我必须在某处设置某种约束,但如果有,我不知道在哪里/如何找到它。使用 Xcode 9.2 和 High Sierra。

windowDidLoad()工作中以编程方式将窗口的大小设置为正确的大小,但是如果我改变了视图的大小,我也必须改变它,这会很快变旧。

对不起,如果这是模糊的;我真的不知道什么样的屏幕截图或代码片段会有所帮助。

macos nsview nswindow nswindowcontroller nstabviewcontroller

5
推荐指数
1
解决办法
900
查看次数