【发布时间】:2014-03-08 08:01:54
【问题描述】:
我正在尝试建立一个带有选项卡式界面的基本应用程序,而且我已经有几年没有做过任何可可开发了,所以我生疏了......我的应用程序将使用选项卡,并显示一个默认值加载选项卡时的项目视图,允许您单击其中一个项目以交换该项目的视图(想想 chrome,当您打开一个新选项卡并显示您最喜欢的网站时,您可以单击以打开) .
目前,我几乎完全在界面构建器中实现了一个基本的单窗口 UI。一个带有 NSCollectionView 的窗口,在我的窗口控制器中使用 ArrayController 和 NSMutableArray 集合项的绑定。效果很好。
但是,有两件事我不确定,这让我想知道我是否最好在这里以编程方式做事而不是弄乱 Interface Builder。特别是我不知道该怎么做的两件事:
- 获取 NSCollectionView 上的点击事件并将其映射到点击项目所代表的模型。
- 在新选项卡中加载此集合视图的新实例(用户可以打开多个选项卡,所有这些选项卡都应显示项目网格)
对于#1,我真的没有看到一个很好的方法来做到这一点。我可以在窗口控制器中捕获 mouseDown,但我不知道如何将其映射回模型。我还为我的集合视图项创建了一个 NSView 子类,但是我也找不到将该视图映射到模型的方法...
对于#2,除了以编程方式创建视图之外,我认为没有什么好方法可以做到这一点。我唯一的另一个想法是将视图放在另一个 .xib 中,并在需要时使用它来创建新视图。如果我能弄清楚#1,这可能会很好......
那么,我是直接以编程方式创建集合视图更好,还是我可以在这里做些什么?
【问题讨论】:
标签: objective-c cocoa cocoa-bindings