面板
如何工作
面板
是一种特殊的窗口
,通常在App中充当辅助功能。NSWindow的NSPanel子类为窗口
添加了一些特殊行为,以支持任务面板
的作用:
默认情况下,
面板
在关闭时不会释放,因为它们通常是轻量级的并且经常重复使用。当App不活动时,
屏幕面板
(Alert
对话框除
外)将从屏幕上移除,并在App再次活动时恢复。这样可以减少屏幕混乱。
具体来说,NSWindow实例的hidesOnDeactivate方法返回false
,但是NSPanel实例的该方法返回true
。面板
可以成为Key窗口
,但不能成为主窗口
。如果
面板
是Key窗口
并具有关闭按钮,则当用户按下Escape
键时,它会自行关闭。
除了这些自动行为外,NSPanel
类还允许你配置某些面板
共有的某些其他行为:
除非用户单击响应输入的
视图
,否则可以防止面板
成为Key窗口
。这样可以防止Key窗口
不必要地移到面板
上。setBecomesKeyOnlyIfNeeded:方法控制此行为。可以使调色板和类似
面板
漂浮在标准窗口
和其他面板
上方。这样可以防止它们被遮盖,并使用户易于使用。setFloatingPanel:方法控制此行为。可以使一个
面板
接收鼠标和键盘事件,即使另一个窗口
或面板
正在模态运行或在模态会话中运行也是如此。这允许面板
中的动作影响模态窗口
或面板
。setWorksWhenModal:方法控制此行为。有关模态窗口
和面板
的更多信息,请参见模态窗口
的工作方式。