一.Foundation:Objective-C标准库
二.AppKit
视图层次:
视图层次用来传递事件,也用来提供相关视图对象的语义群组和一系列不断递增的坐标变换。每个视图都有自己的坐标系统,是作为父坐标的一个变换。
1.窗口(NSWindow):
视图层次的最高级,从概念上看,它是一个虚拟的展示。在Cocoa中,NSScreen
对象代表屏幕,当然,它并不是视图层次的一部分。NSWindow
这个类负责传递事件给视图和处理在它自身上的绘图。每个窗口都有一个NSView
实例用来代表它的内容,这个视图可能会包含其它的视图。
在任何的Cocoa应用中,有两种重要的窗口,即main window
和key window
。main window
代表用户关心的窗口,通常,当前文档的窗口,或者非文档驱动的应用中的用户界面的窗口。key window
是收到关键事件的窗口,通常一个文档会有各种的辅助窗口,例如属性检查器,当用户在上面打字的时候,便成为了key window
。
在AppKit中,我们经常要使用到一个NSWindow
的子类:NSPanel
。它代表一个漂浮的面板,在Cocoa中,标准对话框会使用它们。
每个窗口都有一个与它们相关联的控制器,是NSWindowController
子类的实例。通常,你通过向NSWindowController
对象发送一个-initWithWindowNibName
消息来创建一个窗口实例。通常,nib中的main window
会将它的窗口控制器设置为文件的拥有者上。
2.视图(NSView):
经常使用的视图如下:
- NSButton
- NSImageView
- NSTextField
- NSTextView
- NSMoviewView
- NSOpenGLView
3.单元格(NSCell)
许多视图都使用单元格,最简单的是NSControl
,它是一个非常简单的类,使用单个的cell用来绘制。