(我正在使用 Storyboard和快速。)
我目前有一个 NSWindowController,它有一个 NSTabViewController 作为 contentViewController。
我现在正在尝试通过使用代码更改 NSWindowController 中的选项卡
let tabController = self.contentViewController as! NSTabViewController
tabController.tabView.selectTabViewItemAtIndex(1)
但 TabView 不会改变 View 。
我使用的 API 错了吗?
最佳答案
我找到了一个关于这个话题的 forum post。将 tabView
索引与使用 NSTabViewController
结合使用时,似乎存在错误。
他们的解决方案是通过 Controller 本身而不是它的 tabView 来选择选项卡。
这可以通过使用 selectedTabViewItemIndex
属性来完成。
所以你的代码如下:
if let contentViewController = self.contentViewController as? NSTabViewController {
contentViewController.selectedTabViewItemIndex = 1
}
我将对此进行调查,您也应该这样做。这似乎真的是一个错误,而不是对 API 的滥用。更新 11/10/2016 :
该问题似乎已部分解决。 (macOS Sierra 10.12.1) 该方法现在选择选项卡,但选项卡栏中的选择不会更新..
更新 11/16/2016 :
根据 Apple 的说法,这不是错误,而是预期的行为。他们正在更新文档。
关于swift - 从父 View 控制 NSTabViewController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37005622/