我正在使用情节提要创建基于文档的核心数据 OSX 应用程序。撤消和重做工作正常,直到我在带有 segue 的工作表中呈现视图控制器。提交工作表后,撤消/重做按钮将灰显。
在寻找可能的解决方案时,我遇到了这篇文章,他们说我必须使用“windowWillReturnUndoManager:”委托方法为我的窗口提供一个撤消管理器。所以我在我的segue的sourceController中实现了这个方法,并在prepareForSegue方法中将该控制器设置为destinationController的窗口的委托,如下所示:
override func prepareForSegue(segue: NSStoryboardSegue, sender: AnyObject?) {
super.prepareForSegue(segue, sender: sender)
(segue.destinationController as NSViewController).view.window?.delegate = self
}
func windowWillReturnUndoManager(window: NSWindow) -> NSUndoManager? {
println(undoManager)
return undoManager
}
但是当我打开工作表时,撤消和重做按钮仍然是灰色的。请注意,将 segue 样式更改为 popover 时,撤消/重做工作正常。我该如何解决这个问题?