1.

title bar 标题栏
keyWindow 可以接收输入事件(键盘,鼠标,触控板等外设)的窗口
mainWindow 活动窗口
一个时刻只能有一个keyWindow和一个mainWindow。
keyWindow和mainWindow可以是同一个窗口,也可以是不同的窗口。当mainWindow可以接收输入事件时,它同时也是keyWindow(如文本编辑器)。
一些常用的子类有NSColorPanel(颜色选择),NSFontPanel(字体选择),NSSavePanel(保存打开文件)类型的window不能做为mainWindow,只能做为keyWindow。

模态窗口
有2种创建模态窗口的方法:

1.Modal windows

这种window比较霸道,当它启动后,此时只有这个window可以接收响应用户操作,无法切换到其他窗口操作,其他窗口也不能接收处理系统内部的各种事件。

使用NSApplication的runModalForWindow方法来创建Modal window

  • (IBAction)showModelWindowAction:(id)sender {
    [[NSApplication sharedApplication]runModalForWindow:self.myWindow];
    }
    使用stopModal方法来结束模态。

[NSApplication sharedApplication]stopModal];
2.Modal sessions

比起Modal windows,Modal sessions方式创建的window稍微温和一些,允许响应快捷键和系统菜单,比如字体颜色选择这些panel面板.

启动Modal sessions 窗口

NSModalSession sessionCode = [[NSApplication sharedApplication]beginModalSessionForWindow:window];
结束Modal sessions 窗口

使用sessionCode做为参数来关闭Modal sessions 窗口

[[NSApplication sharedApplication]endModalSession:sessionCode];
注意任何一种模态窗口,都必须调用结束模态的方法去结束模态。如果点击了window左上角的关闭按钮,而没有执行结束模态的方法。整个系统仍然处于模态,其他窗口无法正常工作。

你可能感兴趣的:(1.)