Cocoa 开发中的窗口、面板与控制器使用指南
1. Cocoa 窗口基础
在 Cocoa 开发中,与其他 GUI 工具包不同,它允许应用程序的模型、视图和控制器部分真正分离。窗口只需知道如何显示自身并为其视图提供图形上下文,而窗口运行时的相关操作(如从 nib 文件加载、被拖动或关闭等)通常由窗口的委托对象(即控制器)处理。
1.1 输入处理
NSWindow 除了为视图提供显示框架外,还处理来自鼠标和键盘的用户输入:
- 鼠标操作 :在 NSWindow 中的任何鼠标动作(点击、拖动、移动、释放等)都会触发 NSWindow 中的一个方法,该方法会在其内容中找到合适的视图对象,并在该视图中调用相同的方法。这是因为 NSWindow 和 NSView 都继承自 NSResponder,处理这些事件的方法在 NSResponder 中定义。
- 键盘操作 :当用户按下或释放键盘上的键时,应用程序会调用“关键窗口”(即当前具有键盘焦点的窗口,通常是用户最后点击的窗口)中的一个方法,该方法会确定当前哪个视图具有键盘焦点,并将责任传递给该焦点视图,调用其相同的方法。
1.2 NSWindow 与 NSPanel 的选择
如果不需要修改窗口的基本外观,可以使用 NSWindow 或其子类 NSPanel 来显示应用程序中的控件和其他视图。应用程序的核心元素通常放在 NSWindow 中,而 NSPanel 用于辅助窗口,如 Interface Builder 中的检查器。从用户角度来看,NSWindow 和 NSPanel 有以下关键区别:
超级会员免费看
订阅专栏 解锁全文

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



