【问题标题】:Swap items in xib on Xcode OS X application在 Xcode OS X 应用程序上交换 xib 中的项目
【发布时间】:2014-03-22 16:56:59
【问题描述】:

我是 .xib 的新手,因为我在开发 iOS 应用程序时总是使用故事板。现在我想尝尝 OS X 的味道,但我想出了这个问题。 假设我的 xib 文件中有这个视图,现在如何根据TableView cells 的选择在右侧显示不同的“视图”?我想要实现的不是一个 always-the-same 充满不同数据的视图(蜂窝联系人应用程序等),我想显示完全不同的视图。 在 iOS 中,我会使用诸如 SplitViewController 之类的东西来设置 Master-Detail 依赖项并执行不同的 segue,但是在这里呢?我应该创建其他 .xib 文件并根据选择加载它们吗?我将如何实现这一目标?

提前致谢!

【问题讨论】:

  • 您可以使用带有不可见边框的选项卡视图,并在每个选项卡上放置不同的视图。然后,当用户从列表中选择一个项目时,您可以通过设置 TabView 的选定索引来显示相应的视图。
  • 似乎是一个很好的解决方法:) 我如何设置隐形边框?以编程方式?我可以将tab-buttons 设置为不可见(和不可触碰)吗?
  • 确定命令tabless :)
  • 是的,我相信您可以在 IB 中设置所有这些属性。我不确定如何以编程方式设置它们,但我建议您查看 Apple 的参考资料。

标签: objective-c xcode macos nstableview


【解决方案1】:

iOS 上的许多类没有 OS X 等效项,而 OS X 上更多的类没有 iOS 等效项。在这种情况下,您将不得不自己编写大部分内容。

在我的应用程序 (https://github.com/abhibeckert/Dux) 中,我有一个拆分视图,其中右侧有一个空的自定义视图。

当我更改视图时,我会创建一个新视图(有很多方法可以做到这一点,您可以为每种视图类型设置一个 Xib。我没有这样做),然后从自定义视图中删除所有子视图并添加新的子视图。

我对表格视图中的每个都有不同的视图,即使它们通常是相同类型的详细视图。如果您返回到之前使用的行,这样会保留滚动位置/等。

我也在使用 NDocument,这使我的代码变得非常复杂——因为它根本不是为在主细节界面中使用而设计的。您可能希望避免这种情况。

NSDocument 有一些你可能想要的特性。例如,它为每个文档都有一个单独的撤消堆栈。你很容易实现它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2015-03-23
    • 1970-01-01
    相关资源
    最近更新 更多