Регистрация операции повтора из асинхронной отмены с NSUndoManager - PullRequest
0 голосов
/ 30 октября 2019

С UndoManager.registerUndo (withTarget: selector: object :) я могу зарегистрировать операцию отмены, и в предоставленном селекторе вызов этого же метода снова вызывает регистрацию операции повторения. Это работает нормально, если только в селекторе я не вызываю асинхронную функцию, которая затем должна зарегистрировать операцию повтора, например:

func job() {  
     doSomething()  
     registerUndo(self, undo)  
}  

func undo() {  
     async {  
          doSomethingElse()  
          registerUndo(self, job)  
     }  
}  

В этом случае оба вызова registerUndo () фактически регистрируют операцию отменыи не отменить, а затем повторить, как я ожидал. Есть ли решение этой проблемы?

...