我希望将一张工作表附加到其父窗口的底部边缘,这样我仍然可以看到父级内容的顶部。我在父视图控制器中以通常的方式显示它。
@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
来恢复它。看起来很傻。所以我需要知道的是,有没有办法启用/禁用特定边的拖动?