如何在可可的同一窗口中显示不同的视图?

时间:2013-10-28 08:18:39

标签: macos cocoa

是否可以在mac应用程序的同一窗口中进行导航?(就像在ios应用程序中一样)。我想在同一个窗口中显示每个视图,而不是在按钮单击时打开不同的窗口。 例如,当用户点击按钮时,下一页应该被加载到同一个窗口中。(下一页与当前页面没有任何共同之处。)

2 个答案:

答案 0 :(得分:1)

您可以使用标签视图在同一窗口中轻松切换视图。

更新:

您还可以自定义选项卡视图,使其成为表格(在属性检查器中将样式设置为tabless)并使用按钮在视图之间切换。 您可以通过以下链接获取帮助:http://devcry.heiho.net/2012/01/nstabview-tutorial.html

OR

您可以使用

在按钮点击时添加或删除窗口中的子视图
[[yourWindow contentView] addSubview: yourSubview]; // Add subview to window

[yourSubview removeFromSuperview];   //Remove subview 

更新:

使用tabless标签视图在视图之间切换的步骤。

  1. 将NSTabView拖到您的xib。

  2. 设置号码。属性检查器中的选项卡为no。你想要的意见。

  3. 根据您的要求设计标签的每个视图。

  4. 现在在tabview的属性检查器中,将样式设置为tabless。

  5. 现在拖动要用于在视图之间交换的按钮。假设Button0和Button1用于选项卡视图的第1和第2视图。

  6. 在.h文件中为您的NSTabView创建一个IBOutlet。将它绑定到tabview的引用插座。  IBOutLet NSTabView* tabview;

  7. 为.h类文件中的两个按钮设置IBAction。

  8. 在button1的按钮操作方法中,使用

    - (IBAction)button1clicked:(id)sender

    { [tab selectTabViewItemAtIndex:0]; }

  9. 同样在button2操作方法中使用:

    [tab selectTabViewItemAtIndex:1];

  10. 通过这种方式你可以有任何不。视图,您可以选择按钮单击使用任何视图     [tab selectTabViewItemAtIndex :(要加载的视图的索引)];

答案 1 :(得分:0)

一般情况下,您想谷歌进行视图交换。 那里有很多例子。一些来自Apple和其他地方。 其中大部分与iOS非常相似。 您还需要阅读文档。 了解NSView以及如何从nib加载视图,如何在代码中创建视图对象,如何添加子视图以及如何删除视图。

出于不同的原因,有许多方法可以获得不同的观点。正确的方法是风格,经验和您的应用实际需要做的事情的组合。

Cocoa包括NSBoxNSTabView和许多其他人。这两个可以配置为不显示它们是容器的任何可视指示。 您还需要至少了解NSWindow以了解其内容视图(通常是其他视图的根容器)