From 7c9287543c7764fbb44082070350f56bd366f610 Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Thu, 10 Jun 2021 10:33:24 -0400 Subject: [PATCH] Fix crash due to PencilKit undo manager not being available until viewDidAppear --- .../Compose/ComposeDrawingViewController.swift | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/Tusker/Screens/Compose/ComposeDrawingViewController.swift b/Tusker/Screens/Compose/ComposeDrawingViewController.swift index 29d89e7e..43005101 100644 --- a/Tusker/Screens/Compose/ComposeDrawingViewController.swift +++ b/Tusker/Screens/Compose/ComposeDrawingViewController.swift @@ -80,12 +80,13 @@ class ComposeDrawingViewController: UIViewController { updateLayout(for: toolPicker) canvasView.becomeFirstResponder() + } + + override func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) - // wait until the next run loop iteration so that the canvas view has become first responder and it's undo manager exists - DispatchQueue.main.async { - NotificationCenter.default.addObserver(self, selector: #selector(self.updateUndoRedoButtonState), name: .NSUndoManagerDidUndoChange, object: self.undoManager!) - NotificationCenter.default.addObserver(self, selector: #selector(self.updateUndoRedoButtonState), name: .NSUndoManagerDidRedoChange, object: self.undoManager!) - } + NotificationCenter.default.addObserver(self, selector: #selector(self.updateUndoRedoButtonState), name: .NSUndoManagerDidUndoChange, object: self.undoManager!) + NotificationCenter.default.addObserver(self, selector: #selector(self.updateUndoRedoButtonState), name: .NSUndoManagerDidRedoChange, object: self.undoManager!) } func updateLayout(for toolPicker: PKToolPicker) {