21、Cocoa开发中的窗口、面板与控制器使用指南

Cocoa开发中的窗口、面板与控制器使用指南

1. Cocoa窗口的特性与输入处理

Cocoa与其他GUI工具包不同,它允许应用程序的模型、视图和控制器部分真正分离。窗口只需知道如何显示自身并为其视图提供图形上下文,而窗口在应用程序运行时的各种操作(如从nib文件加载、在屏幕上拖动或被用户关闭)通常由窗口的委托对象(即控制器)处理。

NSWindow除了为视图显示内容提供框架外,还处理鼠标和键盘的用户输入。鼠标在NSWindow中的任何操作(点击、拖动、移动、释放等)都会触发NSWindow中的一个方法,该方法会在其内容中找到合适的视图对象,并在该视图中调用相同的方法。这是因为NSWindow和NSView都继承自NSResponder,处理这些事件的方法在NSResponder中定义。同样,当用户按下或释放键盘上的键时,应用程序会调用应用程序“关键窗口”(即当前具有键盘焦点的窗口,通常是用户最后点击的窗口)中的一个方法,该方法会确定当前哪个视图具有键盘焦点,并将责任传递给该焦点视图,调用其相同的方法。

2. NSWindow与NSPanel的选择

如果不需要修改窗口的基本外观,可以使用NSWindow或其子类NSPanel来显示应用程序中的控件和其他视图。应用程序的核心元素通常放在NSWindow中,而NSPanel用于辅助窗口,如Interface Builder中的检查器。从用户的角度来看,NSWindow和NSPanel有以下关键区别:
| 区别点 | NSWindow | NSPanel |
| ---- | ---- | ---- |
| 可见性 | 不受其他应用程序激活影响 | 当其他应用程序成为活动应用时通常不

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值