【发布时间】:2021-12-06 11:33:50
【问题描述】:
我的 macOS 应用程序的 NSWindow 有一个底部状态区域,它没有交互部分。我希望用户能够通过用鼠标拖动该状态区域来拖动整个窗口,就像用户可以通过其标题区域拖动窗口一样。
我如何以干净的方式完成它?
我希望我应该能够将状态区域的 NSView 的拖动操作转发到处理以某种方式拖动整个窗口的代码。
【问题讨论】:
我的 macOS 应用程序的 NSWindow 有一个底部状态区域,它没有交互部分。我希望用户能够通过用鼠标拖动该状态区域来拖动整个窗口,就像用户可以通过其标题区域拖动窗口一样。
我如何以干净的方式完成它?
我希望我应该能够将状态区域的 NSView 的拖动操作转发到处理以某种方式拖动整个窗口的代码。
【问题讨论】:
使用 NSWindow.isMovableByWindowBackground 或在 NSView 中调用 NSWindow.performDrag(with: NSEvent)。
ObjC 示例:
-(void)mouseDragged:(NSEvent *)event {
[self.window performWindowDragWithEvent:event];
}
【讨论】: