1

ストーリーボードを使用して、ドキュメント ベースのコア データ 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
}

しかし、シートを開いたときに、元に戻すボタンとやり直しボタンがまだグレー表示されています。セグエ スタイルをポップオーバーに変更すると、元に戻す/やり直しが完全に機能することに注意してください。どうすればこれを解決できますか?

4

1 に答える 1