一.创建图形化的用户界面
尽管AppKit包含许多类,但是对于一些目的,AppKit这个框架的部分重要部分负责创建图形化的用户界面。下面来探索一个Cocoa GUIs背后的概念和一些创建图形界面的类。
1.放置视图
像大多数的GUI工具集一样,Cocoa使用笛卡尔坐标系来绘制视图。坐标点使用NSPoint来表示,Cocoa中的坐标规定:视图的起始点是在左下角,特殊的就是flipped view,它的起始点是左上角:
当然,对于一些视图来说,起始点是从下方开始是很不方便的,例如Text views,那么如何来解决呢?Cocoa允许任意的视图进行反转,这样就可以让视图的起始点从左上角开始。
2.Clipped Views(修剪的视图,使用NSClipView类)
你经常需要在一个小窗口中展示一个大的文档,为了达到这个目的,你可以:移动或者修剪文档。Cocoa提供了NSClipView类,你可以调用NSRectClip()或者NSRectClipList()函数,它们可以设置修剪的区域。除了处理修剪的绘图之外,clip view还负责跟踪要绘制视图的哪一部分。我们可以向它发送-scrollToPoint:这个消息。
3.Scroll Views(滚动视图,NSScrollView类)
4.Tab Views(标签视图NSTabView)
标签视图有两个重要的组件:顶部的标签行,底部的内容视图。
其中,NSTabViewItem类封装了一个单独的标签。
5.Split Views(分开的视图,NSSplitView类)
NSSplitView视图是一种简单的容器视图,每个分开的单视图都可以包含子视图,单视图是通过一个竖直或者水平的条分开的,我们可以通过条来调整每个单视图的大小。
6.Boxes
不推荐使用
7.创建视图
大多数时间,你创建视图只是将它们拖拽到Interface Builder的窗口中。用代码创建视图在Cocoa中是很少见的,但是如果你想创建全屏应用的话,你需要使用代码来创建视图,因为在Interface Builder中是没办法创建全屏窗口的应用。
8.Text Views(文本视图)
负责文本渲染的最简单对象是NSCell这个类,它可以渲染文本。
9.Data Views(数据展示视图)
Cocoa中最复杂的视图是那些需要data source(数据源)
的那些视图。这些视图实现了MVC模式的视图部分。
在Cocoa中有三种:
NSBrower类实现了Finder中的浏览器视图,这会以列的形势来展示有层次的数据。NSTableView代表了二维数据的表,这用来展示记录。NSOutlineView类可以允许有层次的数据,通常用来以树的形势展示数据。
8.菜单
9.普通的控制器
直接将视图连接到模型上不是很灵活。通常一个模型对象对它拥有的数据要有特定的布局,视图对象想要一个稍微不同的版本。
解决这个问题的传统答案是MVC模式,该模式中,控制器在模型和视图对象之间提供了绑定,允许它们两有接口,可以更加紧密地代表它们自己的需求。
控制器NSController是任何程序最不感兴趣的部分,模型是最重要的,因为它定义了数据和操作。视图是重要的,因为用户是直接与它们打交道的。控制器只是两者之间的”胶水”。
本文介绍了Cocoa框架下创建图形用户界面的基本概念和技术,包括视图的放置、滚动视图、标签视图、分开的视图等,并探讨了文本视图、数据视图以及MVC模式在视图中的实现。
752

被折叠的 条评论
为什么被折叠?



