我有一个窗口,我希望用户能够通过拖动窗口内容中的任何位置(而不仅仅是标题栏)来移动。我知道这可以通过NSWindow movableByWindowBackground
方法完成,但这似乎不能单独使用。
我gather可能需要覆盖NSView mouseDownCanMoveWindow
。但我不能轻易地为所有父视图(拆分视图等)做到这一点。使它成为一个纹理窗口没有帮助。不出所料,将NSWindow
子类化为覆盖isMovableByWindowBackground
也无济于事。
是否真的有必要在窗口中对所有父视图进行子类化以使其工作?
答案 0 :(得分:5)
在OS X 10.11上,将NSWindow的属性movableByWindowBackground
设置为YES
。
不再需要为此行为创建子类。
答案 1 :(得分:1)
在NSSplitView中添加:
override var mouseDownCanMoveWindow: Bool {
return true
}