Cocoa开发中的窗口、菜单和面板使用指南
1. Cocoa窗口的基本特性
Cocoa在创建应用程序时,允许将应用程序的模型、视图和控制器部分真正分离。窗口只需知道如何显示自身并为其视图提供图形上下文,而窗口在应用程序运行时的相关操作(如从nib文件加载、被拖动、被用户关闭等)通常由窗口的委托对象(即控制器)处理。
NSWindow除了为视图提供显示框架外,还处理来自鼠标和键盘的用户输入。鼠标操作会触发NSWindow中的方法,该方法会找到内容中合适的视图对象并调用视图中的相同方法。键盘操作时,应用程序会调用“关键窗口”中的方法,确定当前具有键盘焦点的视图,并将责任传递给该视图。
2. NSWindow与NSPanel的选择
若无需修改窗口的基本外观,可使用NSWindow或其子类NSPanel来显示应用程序中的控件和其他视图。应用程序的核心元素通常放在NSWindow中,而NSPanel用于辅助窗口,如Interface Builder中的检查器。从用户角度来看,NSWindow和NSPanel有以下关键区别:
| 特性 | NSWindow | NSPanel |
| ---- | ---- | ---- |
| 激活显示 | 不受其他应用程序激活影响 | 其他应用程序激活时通常不可见,自身应用程序激活时重新出现 |
| 浮动显示 | 无此特性 | 可在应用程序的所有其他窗口(包括主窗口)前面“浮动” |
| 关键窗口 | 可成为关键窗口 | 可轻松配置为不必要时不成为关键窗口 |
3. 窗口属性设置
在Xcode的WindowLab项目中,可通过以下步骤设置
超级会员免费看
订阅专栏 解锁全文
18

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



