通过拖动背景移动窗口(movableByWindowBackground)

时间:2015-01-23 05:03:27

标签: macos cocoa nswindow

我有一个窗口,我希望用户能够通过拖动窗口内容中的任何位置(而不仅仅是标题栏)来移动。我知道这可以通过NSWindow movableByWindowBackground方法完成,但这似乎不能单独使用。

gather可能需要覆盖NSView mouseDownCanMoveWindow。但我不能轻易地为所有父视图(拆分视图等)做到这一点。使它成为一个纹理窗口没有帮助。不出所料,将NSWindow子类化为覆盖isMovableByWindowBackground也无济于事。

是否真的有必要在窗口中对所有父视图进行子类化以使其工作?

2 个答案:

答案 0 :(得分:5)

在OS X 10.11上,将NSWindow的属性movableByWindowBackground设置为YES

不再需要为此行为创建子类。

答案 1 :(得分:1)

在NSSplitView中添加:

override var mouseDownCanMoveWindow: Bool {
    return true
}