Mac OS X 的窗口操作逻辑? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kid813
V2EX    macOS

Mac OS X 的窗口操作逻辑?

  •  
  •   kid813 2014-07-24 22:46:07 +08:00 7820 次点击
    这是一个创建于 4100 天前的主题,其中的信息可能已经有所发展或是发生改变。
    cmd+w关闭一个app的窗口(未退出),按cmd+tab仍然显示这个app的图标,但是无法切换到这个app的窗口,而此时的窗口focus已经不知道去哪儿了。

    举个栗子:打开Safari和Chrome,关闭Chrome的窗口(不是cmd+q退出),切换回Safari的窗口,按cmd+tab,选中Chrome的图标后松手,此时窗口的focus不在Safari(无法操作Safari),但Chrome的窗口也不会弹出来。

    cmd+h隐藏窗口可以避免这个问题。Apple的设计逻辑是怎么样的呢?
    28 条回复    2014-08-08 15:14:21 +08:00
    chshouyu
        1
    chshouyu  
       2014-07-24 22:52:28 +08:00
    退出直接cmd+q
    hydrowing
        2
    hydrowing  
       2014-07-24 22:54:40 +08:00   1
    试试关掉窗口后,cmd + tab 切到那个 app,不松开 cmd 按住 option,然后松开 cmd。
    但我也不知道为什么要这么设计。
    jsonline
        3
    jsonline  
       2014-07-24 22:55:15 +08:00
    看不到窗口就新建一个呗 CMD+N
    Mutoo
        4
    Mutoo  
       2014-07-24 22:56:35 +08:00
    cmd+n
    1ychee
        5
    1ychee  
       2014-07-24 23:22:48 +08:00
    被你一说,我发现 Mac 的窗口管理确实比较混乱啊。。。
    我一般都是直接 CMD+M 最小化的。
    ffffwh
        6
    ffffwh  
       2014-07-24 23:27:17 +08:00
    总之,和Windows(&各类Linux桌面环境)不太一样,具体嘛...你用用就知道了。
    kid813
        7
    kid813  
    OP
       2014-07-24 23:30:16 +08:00
    @hydrowing 谢谢,这些快捷键不是便捷,而是增加复杂度。
    kid813
        8
    kid813  
    OP
       2014-07-24 23:31:47 +08:00
    @1ychee 在Windows下按习惯了cr+w。按h或者m的键程都太远了。
    limon
        9
    limon  
       2014-07-25 00:09:37 +08:00   1
    想起以前吐槽 Mac 只能拖右下角 resize 还被人喷。
    1ychee
        10
    1ychee  
       2014-07-25 00:15:42 +08:00
    @kid813 嗯,不过没有办法啊。总比用鼠标点击方便吧?
    @limon 嗯,窗口控制最好用 MOOM。现在的原生的“适应窗口”也完全不知所云
    H4Dee
        11
    H4Dee  
       2014-07-25 00:39:40 +08:00   1
    Cmd+tab 切换到对应应用图标松手后你看工具栏左上角「」右边就已经显示为对应程序的名字了啊,这说明你已经在该程序下面了。你之前关的是程序最后一个「窗口」,如有需要再开新一个就是了。举个例子,比如说 Mac 支持将文件直接拖拽到 Dock 中程序图标上打开(相当于直接打开新窗口),关闭窗口并不是关闭程序的必要条件。
    nikolai
        12
    nikolai  
       2014-07-25 00:45:55 +08:00   1
    Cmd + Tab 确实非常不妥。不过我已经习惯了每个 desktop 只放一个窗口,然后每个 desktop 都有直达的快捷键。。。
    kid813
        13
    kid813  
    OP
       2014-07-25 01:20:36 +08:00
    @H4Dee 明白您的意思了,谢谢。
    yellowV2ex
        14
    yellowV2ex  
       2014-07-25 01:47:21 +08:00
    你可以把整个桌面理解成类似PS未打开文件时的窗口,按cmd+w只是关闭一个打开了的文件窗口,不会退出程序。
    等你需要用PS的时候,cmd+tab切换到PS,就可以直接打开或新建PS的文档。

    只是在Mac下,菜单跑到最顶,没有多余的窗口了而已,程序还是处于待命状态。
    13eet
        15
    13eet  
       2014-07-25 02:36:09 +08:00
    cmd+tab只是切换程序,不是切换窗口,所以你切换回到chrome也不会给你开新的窗口,这个时候你就要cmd+N了,cmd+N是非常常用的快捷键不用纠结。
    '不松开 cmd 按住 option,然后松开 cmd'这个神奇的切换焦点的方式我居然头一次听说,不过这个样也不失为一个办法。

    总之,OS X的窗口管理虽然不是最吊的,但是比windows的逻辑还是 条理的多了。
    Axurez
        16
    Axurez  
       2014-07-25 02:45:14 +08:00
    逻辑就是窗口是隶属于程序的,而不是 Windows 下面窗口就是最高级。没有窗口不代表程序退出。
    可以通过三指上滑和下滑来体会。
    这样的好处是,比如 Chrome 下载,不必非留着一个窗口等。
    但有一些程序是关闭了窗口就退出了。通常是只能打开一个窗口的程序,比如备忘录。
    yimity
        17
    yimity  
       2014-07-25 06:55:22 +08:00
    @13eet 不敢苟同,各有各的好吧。
    yimity
        18
    yimity  
       2014-07-25 06:55:42 +08:00
    最后一句观点。
    allan1st
        19
    allan1st  
       2014-07-25 07:00:21 +08:00
    @13eet cmd+n 不是万能的,比方说 iTunes 就是不行的。
    yyfearth
        20
    yyfearth  
       2014-07-25 08:53:28 +08:00   1
    @yimity OSX 下 cmd+tab 切换app cmd+` 切换窗口
    对于高级用户来说一般来说是优势 更加灵活 控制更加到位
    因为一个app可能有0-多个窗口
    用windows的ctrl+tab 如果每个app只有很少几个窗口的情况下很方便
    但是 如果有app没有窗口 或者 有很多窗口 就不方便了
    OSX的设计 两者分开 没有窗口的你可以再开新窗口 窗口多的不影响 cmd+tab
    不过问题在于切换窗口 cmd+` 不够直观

    对于初级用户 OSX有 exposure 非常友好 可以通过触摸板手势直接呼出

    我个人比较喜欢Windows7/8的任务栏 鼠标上去可以看到所有窗口的预览
    快捷键的话还是喜欢OSX这样分开的设计
    sdvegeta
        21
    sdvegeta  
       2014-07-25 11:22:31 +08:00
    @yyfearth 主要是cmd+~需要开发者支持,又不是强制标准,很多app都不支持cmd+~来切换同一个app的不同窗口。比如chrome、firefox就不支持,窗口菜单下就没有循环显示窗口这项。 所以这个快捷键有的app支持,有的不不支持,那就等于没用。
    yyfearth
        22
    yyfearth  
       2014-07-26 02:48:53 +08:00
    @sdvegeta chrome firefox 都是支持的好么 注意 窗口 不是 tab
    File下面有 新窗口 和 新tab cmd+`是可以切换窗口的 我相信这个是系统的支持 不是app自己去做的
    只要app开了多个窗口 就应该可以使用
    codeplay
        23
    codeplay  
       2014-07-26 06:58:54 +08:00   2
    先给解决方案:楼主装一个HyperSwitch就可以解决上述不便和烦恼:在HyperSwtich的设置界面里勾选When activating an app without windows,try to open default window.

    挨个点评回复哈
    @kid813
    程序和窗口是分离的,一个程序可以有多个窗口,所有窗口关闭,程序也还没有退出。一般来说是这样,但也有例外,Apple自家的iPhoto就是关闭主窗口就退出程序了。
    这种设计虽然严谨,但是未必实用,好在可以装软件优化改造可以参考我的相关帖子《键盘党在 OSX 优雅的切换程序(窗口)》

    @hydrowing
    这个操作只对最小化的有用,关闭了的窗口就是被关闭了,回不来的。

    @1ychee
    楼主明显是还没有意识到窗口和程序分离的逻辑。


    @yellowV2ex
    逻辑上最严谨,但是不装软件的优化的话,实用性很捉急(对键盘党不友好)


    @nikolai
    您都被逼成啥样了……赶快看我的帖子《键盘党在 OSX 优雅的切换程序(窗口)》
    1ychee
        24
    1ychee  
       2014-07-26 09:38:02 +08:00
    @codeplay 总结的很好。我去看看你的文章!非常感谢!
    hydrowing
        25
    hydrowing  
       2014-07-26 11:45:23 +08:00
    @codeplay 可以的呀,我天天都在这么用完全没问题,可能有部分应用不支持吧。
    个人猜测这快捷键和鼠标单击 dock 图标是等价的。
    sdvegeta
        26
    sdvegeta  
       2014-08-08 14:48:39 +08:00
    @yyfearth 我真没找到啊,窗口和tab我还是分得清的。在看到你的帖子后,我又特意再找一遍,再尝试一遍,还是不行,需要什么设置吗?这个很苦恼啊
    yyfearth
        27
    yyfearth  
       2014-08-08 14:55:00 +08:00
    @sdvegeta 不用找啊 开了多个窗口后 直接cmd+ 就是切换啊
    难道你是要找这个菜单项么?
    sdvegeta
        28
    sdvegeta  
       2014-08-08 15:14:21 +08:00
    @yyfearth 嗯,现在搞掂了,因为之前只有finder可以这样切换窗口,以为是一定要窗口这个菜单下要有循环显示窗口才行,刚才又研究了一下,拿了同事的机器来对比,发现是 系统偏好设置键盘快捷键键盘将焦点移到新口 这个没勾上 …… 汗死,可能是装那个app的被改了,照道理自己应该是不会去改这个设置的……
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1081 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:10 PVG 02:10 LAX 11:10 JFK 14:10
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86