[Swift]UndoManagerについて
(画像ソース:https://unsplash.com/photos/UWFnSfocJbA?utm_source=unsplash&utm_medium=referral&utm_content=creditShareLink)
状態がUpside downなのでこのイメージを追加しました...
学習の背景
ケース
Redo
およびUndo
の描画機能が必要であり、実施中に資料が見つかった.質問する
解決する
1. Queue
2.LinkedList
3. Ringbuffer
公式ドキュメントを調べてみると、すでに関連機能を実現している対象があることがわかりました.
このオブジェクトは、この記事のトピック「UndoManager」です.
Task Manaement
UndoManagerは、正式なドキュメントに対応する色付きサブドキュメントとして登録されています.
(UnoManagerの親ドキュメントはTask Management)
定義を見てみましょう
Manage your app’s work and its interaction with the user and the system
説明:ユーザーとシステム間のインタラクションとアプリケーションの動作を管理するオブジェクト.
本書に記載されている
Topics
は、次のとおりです.- class : UndoManager
- protocol : PrograssReporting
- class : Prograss
- class : Operation
- class : OperationQueue
- class : BlockOpertaion
- class : Timer
- Increasing App Usage with suggestions Based on User Activities
- Continuing User Activities with Handoff
- Implementing Handoff in Your App
- class : NSUserActivity
- protocol : NSUserActivityDelegate
- class : ProcessInfo
- class : NSBackgroundActivityScheduler
- protocol : NSUserNotificationCenterDelegate
- typealias : Published
- typealias : ObservableObject
ここでは、このトピック
UndoManager
についてさらに説明します.UndoManager
A general-purpose recorder of operations that enables undo and redo.
製品の取り消しとやり直しを許可するレコーダオブジェクト.
->やり直しと取り消しを許可するために+redo取り消し操作を管理するオブジェクトを記録することを説明します.
class UndoManager: NSObject
本書の概要を確認し、整理しました.Undo機能を使用するには、登録する必要があります.
そこで,登録方法を実施した.このメソッドを使用して登録します.
このメソッドは、オブジェクトの名前を指定し、モジュールを介して呼び出されるアクションを決定します.
(サンプルファイルにコメントを作成します.)
Undoが登録された後、
undo()
という名前のUndoを実行する方法を使用することができる.このメソッドは、元に戻す操作を実行することによって、元に戻すことを呼び出しポイントの前の位置に戻します.
Undoが呼び出されると、
UndoManager
は、redo()
を呼び出すために、元に戻す前の状態を自動的に保存します.UndoManager
はUIインタラクションのデフォルトオブジェクトです.たとえば、UImitでtext viewで作成または作成する場合に使用できるはずです.
もちろん、
UndoManager
は、通常の状態管理としても使用することができる.たとえば、コード行の最後のコマンドを元に戻すことも、ネットワーク・ライブラリで要求されたコマンドを元に戻すこともできます.
要旨:UndoManager==状態制御者
かなり簡単に使えます.
△もちろんグループ分けの方法もありますが、後で機会があれば処理します.
https://github.com/kipsong133/UndoManager_Example/tree/main
Reference
この問題について([Swift]UndoManagerについて), 我々は、より多くの情報をここで見つけました https://velog.io/@kipsong/Swift-UndoManager에-대하여テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol