【问题标题】:Making Inspector Sidebar in macOS Window在 macOS 窗口中制作 Inspector 侧边栏
【发布时间】:2020-11-05 21:47:50
【问题描述】:

我想在 macOS 窗口中创建一个“检查器侧边栏”。你知道 Xcode 中的检查器:

侧边栏的内容应该是上下文相关的。根据用户在主窗口中的选择,应该会有不同的对话框。

我必须使用哪些技术来获得这种行为?

我的尝试是(在故事板中):

  1. 在窗口中插入一个拆分视图。
  2. 将选项卡视图控制器插入拆分视图的右侧自定义视图中

但这不起作用:我可以轻松地将拆分视图插入窗口。而且我可以轻松地将选项卡视图控制器插入到情节提要中。但是我无法将 Tab View Controller 插入到 Split View 的右视图中。

那么我该如何实现期望的行为呢?

【问题讨论】:

  • 将 TabView 控件,而不是视图控制器插入 Split 家伙。
  • @ElTomato,当我使用 TabView 控件时,如何为不同的对话框设置 ViewControllers?
  • 你称之为“不同的对话框”的东西是什么?
  • @ElTomato,我不知道确切的术语。例如,在 Xcode 故事板中:当我选择一个 SplitView 时,我会在检查器中看到一个特殊的“对话框”,我可以在其中自定义 SplitView(见上图)。当我选择另一个对象时,我得到一个不同的“对话框”。同样,我希望在侧边栏中有不同的“对话框”,每个都有不同的控件。
  • 您是如何将拆分视图控制器插入窗口的?

标签: swift xcode macos nssplitview nstabview


【解决方案1】:

最后我解决了这个问题。我必须向每个选项卡的 CustomViews 添加一个 CustomView。这样,Xcode 会自动添加 ViewControllers。以下是各个步骤:

首先,我必须在情节提要中插入一个 SplitView。这里还没有问题。

其次,我已将 TabView(样式:tabless)添加到其中一个自定义视图中:

第三,我需要将 ContainerViews 添加到每个选项卡:

这样 Xcode 为每个选项卡的 ContainerViews 添加了 ViewControllers:

不,我可以通过编程方式选择不同的选项卡:

@IBAction func showInspector1(_ sender: NSButton) {
    self.tabView.selectTabViewItem(at: 0)
}
@IBAction func showInspector2(_ sender: NSButton) {
    self.tabView.selectTabViewItem(at: 1)
}

我要感谢 cmets,它们帮助我取得进展并解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 2021-12-15
    • 2020-08-29
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    相关资源
    最近更新 更多