ストーリーボードを使用して、ドキュメント ベースのコア データ OSX アプリを作成しています。セグエ付きのシートにView Controllerを表示するまで、元に戻すとやり直しは正常に機能します。シートが表示されると、元に戻す/やり直しボタンがグレー表示されます。
考えられる解決策を探しているときに、「windowWillReturnUndoManager:」デリゲート メソッドを使用してウィンドウに元に戻すマネージャーを提供する必要があるというこの記事に出くわしました。そこで、このメソッドをセグエの 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
}
しかし、シートを開いたときに、元に戻すボタンとやり直しボタンがまだグレー表示されています。セグエ スタイルをポップオーバーに変更すると、元に戻す/やり直しが完全に機能することに注意してください。どうすればこれを解決できますか?