I'm writing a plugin for an existing app and I need to capture the modified text and range affected by the undo and redo action. I am able to access the NSUndoManager and NSTextView the app has created and I am able to register for notifications. Is there a way to leverage these elements to grab the group of text that is undone/redone?
Capturing undo and redo edit text groups in NSTextView
1.2k Views Asked by afrederick At
1
There are 1 best solutions below
Related Questions in OBJECTIVE-C
- How to control the volume of an iPhone programmatically in objective-c
- Occasional crash at NSURLSessionDataTask dataTaskWithRequest:completionHandler:
- How to set value the descriptor of iOS BLE in Objective-C?
- Unexpected #selector() Behavior in Swift-Objective-C Interop?
- In what context can we use an unqualified #selector() expression in Swift?
- AVPictureInPictureController crashes during initialization
- How to use pow() in Objective-C?
- How to change the image on the MGSwipeButton in MGSwipeTableCell
- Using sort descriptors in Outline View
- Why is my Swift function not printing from inside the dataTask closure?
- Using UICollectionViewCell with IBOutlet
- Undefined symbol: _OBJC_CLASS_$_ only on simulator
- Why can't I receive a notification sent from Camera Extension(Swift) to an observer application (obj-c++)
- Behavior of __block modifier in objc
- Inserting subview into view where I've added subviews and sublayers
Related Questions in COCOA
- In what context can we use an unqualified #selector() expression in Swift?
- How can I trigger macOS system gamepad API based on a value received from iOS app through core bluetooth
- Using sort descriptors in Outline View
- NSTableView to NSOutlineView Drag & Drop not accepting drop
- How to remove horizontal line in bottom of section NSTableView?
- CGSRegionRef: How is an arbitrary region represented as union of rects?
- Listen for Touch Events on MacOS (Trackpad)
- Window "yanks" when moving
- Writing NSFilePromiseProviders to pasteboard blocks app on quit
- Basic ImGui program doesn't render, leaks memory and crashes
- NSTokenField suggestion using context menu in swift
- How to link multiple text views to a single text storage in TextKit 2
- I would like to know why I’m not getting IBOutlets connected in an App’s window
- How to make a custom event loop in Cocoa?
- Why is restoreWindow(withIdentifier:state:) called after applicationDidFinishLaunching(_:)?
Related Questions in NSTEXTVIEW
- How to link multiple text views to a single text storage in TextKit 2
- NSAttributedString attributes stripped after assigning to NSTextStorage
- Why NSTextView scrolls to bottom when loaded asynchronously?
- MacOS/Appkit: unable to see drag animations for an NSTextView
- Set the maximum text size for NSTextView
- string.length keypath binding crashes during nib decode on Sonoma
- textContainerInset affecting NSAttributedString's background color alignment
- NSTextField - autoresize related to content size - up to 5 lines to display
- How to fix HTML layout issues in an NSTextView on macOS Sonoma?
- NSTextView with automatic fitting to content size
- Incorrect rendering when using NSTextView with TextKit 1
- Auto-Correct not working on MacOS using NSTextView wrapped for SwiftUI
- Issue with NSTextView and NSView key events
- How to change the selection color in an NSTextView in SwiftUI?
- NSTextView ligature attribute overridden
Related Questions in NSUNDOMANAGER
- NSUndoManager and Undo/Redo Menu Items "disconnected" from each other
- (CoreData) using UndoManager with a private Managed Object Context
- How do I make UITextView use its parent's undoManager instead of its own
- How can I integrate my own text changes into UITextView's undo manager?
- NSUndoManager action name broken for grouped action after undo-redo cycle
- Why is my SwiftUI iPhone app with shake-to-undo undoing custom actions and TextField changes at the same time?
- Undo crash with multiple conditionally rendered TextEditor views
- Quickest way to dirty a FileReferenceDocument in SwiftUI for macOS
- Manage Undo across multiple NSTextFields in the same window
- UndoManager with async or long-running tasks
- UndoManager persistence in iOS
- SwiftUI UndoManager — how does it work and isn't it working?
- Undo/redo text input w/ SwiftUI TextEditor
- NSUndoManager and replacing/skipping undo steps
- UndoManager's canUndo property not updating in SwiftUI
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
I haven't done this, so I'm only going by the docs/knowledge.
Because you have access to the textview you can become a textview delegate. You'll then receive useful messages...
Before the text changes:
After the text changes:
I don't know if you'll receive these changes (does UndoManager bypass this stuff?), but you may. In any event you can query selection settings while handling the previous messages.
Before the selection changes:
After:
UndoManager should tell you that it is in the process of performing an Undo, which mean that you can differentiate ordinary changes from undo-based changes.
This seems like enough to go on, I hope it helps.