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