4

如何找出 NSTabViewItem 何时更改,即用户更改了 NSTabView 的视图?

理想情况下,我想生成通知,但欢迎任何解决方案。

4

2 回答 2

5

我最初的答案建议观察selectedTabViewItemNSTabView但这似乎不起作用(在测试中我只能让它观察NSKeyValueObservingOptionInitial)。

一个可能更聪明的解决方案是使用委托。tabView:didSelectTabViewItem:在相关控制器中实现。

文档在这里

于 2012-03-27T08:05:25.880 回答
1

这是 Swift 3 中的一个示例。

为您创建一个自定义类,NSTabViewController作为NSTabView. 该类NSTabViewController已经实现了NSTabViewDelegate协议。

class CustomTabViewController: NSTabViewController {
    override func tabView(_ tabView: NSTabView, didSelect tabViewItem: NSTabViewItem?) {
        let identifier = tabViewItem?.identifier as? String
        print(identifier)
    }

}

然后在界面生成器中:

  1. 在右侧面板的 Identity Inspector 中将您创建的自定义类分配给您的选项卡视图控制器
  2. 在左侧的界面层次面板中,控制从 Tab View 拖动到 Custom Tab View Controller(名称将取决于您的自定义类)并delegate从出现的小弹出窗口中选择

您还可以在您的委托中实现其他方法,NSTabViewDelegate.

于 2018-01-22T13:07:16.167 回答