xcode – 高级应用程序设计架构

xcode – 高级应用程序设计架构,第1张

概述在过去的几年里,我已经完成了相当多的iOS开发,所以我对iOS架构应用程序设计非常熟悉(你可以推送,d出或粘贴到标签栏中的所有东西都是ViewController).我最近开始探索适当的Mac应用程序开发,感觉有点迷失.我想真的只是有一个完整性检查,也许有一些建议,如何建立这样的应用程序的正确方法是: 我想构建一个库式的单窗口应用程序,它将在其运行期间产生额外的窗口,但不是完整的文档.主窗口的布 在过去的几年里,我已经完成了相当多的iOS开发,所以我对iOS架构和应用程序设计非常熟悉(你可以推送,d出或粘贴到标签栏中的所有东西都是VIEwController).我最近开始探索适当的Mac应用程序开发,感觉有点迷失.我想真的只是有一个完整性检查,也许有一些建议,如何建立这样的应用程序的正确方法是:

我想构建一个库式的单窗口应用程序,它将在其运行期间产生额外的窗口,但不是完整的文档.主窗口的布局与OS X lion的Mail.app非常相似,具有三宽分割视图,包含:

>源列表或高级主题选择
>与第一个窗格中所选主题相关的项目的列表视图
>详细视图,显示在中间窗格中选择的对象的详细信息

就像我说的,就外观而言,与Mail.app非常相似.

我的问题是如何从XCode内部将所有这些粘合在一起.这是我到目前为止的困惑所在:

>默认项目生成带有主菜单和窗口的NIB.我喜欢封装功能,所以我应该为这个窗口创建一个窗口控制器,并以某种方式将它连接到Interface Builder中,还是特定于窗口的功能属于其他地方?
>如果可能的话,我希望我的三个窗格中的每一个都是独立的视图控制器.我创建了三个NSVIEwController子类(XCode自动生成NIB),并添加(到主菜单/窗口NIB)视图控制器对象与指定的每个类,将每个视图属性连接到我放入的三个自定义视图通用NSVIEw对象之一NssplitVIEw.当我尝试设置每个视图控制器的NIB时,只有主菜单/窗口NIB出现在下拉列表中,并且手动键入所需的一个似乎没有效果(运行应用程序时视图的内容实际上没有显示) .这让我觉得我做错了什么.
>对于我应该为前两个窗格中的每个窗格使用哪种类型的视图,我有点模糊.我显然会为最终窗格构建一个自定义窗口,但看起来前两个应该已经存在于Cocoa框架中.

无论如何,如果我做错了什么,不要费心去解决我的问题;告诉我我应该做什么.我想我只需要一位合适的Mac开发人员指出我正确的方向.

解决方法 关于第一个问题,您不需要使用Apple在MainMenu.xib中提供的主窗口.如果需要,可以从nib中删除该窗口,然后在applicationDIDFinishLaunching:delegate方法中实例化NSWindowController,然后加载并控制主窗口.

你肯定对NSVIEwController感到困惑,因为你可能会认为它的工作方式与UIVIEwController类似.

实际上,NSVIEwController与UIVIEwController完全不同,并且没有相同级别的Interface Builder支持.例如,您无法在IB的窗口中放置视图控制器,而这是iOS上的标准做法. NSVIEwController是Mac上相对较新的类,通常用它来以编程方式加载视图并管理视图内容.

最接近Mac的UIVIEwController的类是NSWindowController.这已经比NSVIEwController长了很多,事实上很多Mac应用程序都没有使用NSVIEwController.

通常,应用程序中的每个窗口都应该有一个窗口控制器来管理它.您可以使用NSWindowController的子类来处理每个窗口的许多功能.

如果要使用NSVIEwController,则应使用窗口控制器来管理这些视图控制器对象.由于上述缺少Interface Builder支持,这通常以编程方式完成.每个NSVIEwController实例从特定的nib文件加载其视图.您通常不在Interface Builder中添加视图控制器.

对于源列表,如果您有多个部分或NStableVIEw,通常会使用NSOutlineVIEw.只要需要项目列表,就会使用这两个对象. NSOutlineVIEw是分层的,而NStableVIEw是扁平的.

我希望这有帮助.

总结

以上是内存溢出为你收集整理的xcode – 高级应用程序设计/架构全部内容,希望文章能够帮你解决xcode – 高级应用程序设计/架构所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1001205.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存