(我正在使用故事板和swift。)
我目前有一个NSWindowController,它有一个NSTabViewController作为contentViewController。 我现在正尝试使用
通过代码更改NSWindowController中的Tabslet tabController = self.contentViewController as! NSTabViewController
tabController.tabView.selectTabViewItemAtIndex(1)
但TabView不会更改视图。
我使用API错了吗?
答案 0 :(得分:3)
我找到了关于此主题的forum post。将tabView
索引与使用NSTabViewController
一起设置时似乎存在错误。
他们的解决方案是通过控制器本身而不是tabView选择选项卡。
这可以通过使用selectedTabViewItemIndex
属性来完成。
所以你的代码如下:
if let contentViewController = self.contentViewController as? NSTabViewController {
contentViewController.selectedTabViewItemIndex = 1
}
我要对此提出一个雷达,你也应该这样做。这似乎是一个错误,而不是滥用API。
2016年10月11日更新:
问题似乎部分得到解决。 (macOS Sierra 10.12.1)该方法现在选择选项卡,但标签栏中的选择不会更新..
2016年11月16日更新:
根据Apple的说法,这不是一个错误,而是预期的行为。他们正在更新文档。
使用tabViewController时,控制器拥有选项卡UI(分段控件,工具栏等)而不是tabView本身。实际上,tabView没有选项卡样式,因此它只处理内容视图之间的切换。
我们正在使用内部错误报告29184908来跟踪更新文档,指出selectedTabViewItemIndex应该仅在此上下文中使用。