我希望将工作表附加到其父窗口的底部边缘,以便我仍然可以看到父窗口内容的顶部。我在父级的视图控制器中以通常的方式显示它。
@IBAction func clickShowSheet(_ sender: NSButton) {
mySheet = MySheetController(windowNibName: "MySheet")
view.window!.beginSheet(mySheet.window!,
completionHandler: {response in
print(response == NSModalResponseOK ? "OK" : "Cancel")
self.mySheet = nil
})
}
为了将其附加到底部边缘,我实现了父窗口的委托方法:
func window(_ window: NSWindow, willPositionSheet sheet: NSWindow, using rect: NSRect) -> NSRect {
var rect = rect
rect.origin.y = sheet.frame.size.height + 15
return rect
}
效果令人满意,我希望动画以另一种方式工作。
我还希望工作表可调整大小,因此将笔尖中的复选框保留在打开状态。通过拖动一侧来调整大小很棒:工作表保持居中。不能拖动上边缘,如果工作表位于其窗口的顶部,这是有意义的,但可以拖动下边缘,将工作表留在中间的某个位置。我可以通过实施windowDidEndLiveResize
来使其恢复。看起来很傻。所以我需要知道的是,有没有办法启用/禁用特定边缘的拖动?
如果您使用的是弹簧底板,请将其作为道具传递。
blocking={false}