// // KBBackspaceUndoManager.h // CustomKeyboard // #import NS_ASSUME_NONNULL_BEGIN extern NSNotificationName const KBBackspaceUndoStateDidChangeNotification; @interface KBBackspaceUndoManager : NSObject @property (nonatomic, readonly) BOOL hasUndo; + (instancetype)shared; /// 记录一次删除前的快照(不改变撤销按钮显示)。 - (void)recordDeletionSnapshotBefore:(NSString *)before after:(NSString *)after; /// 记录一次“立刻清空”删除的内容(基于 documentContextBeforeInput/AfterInput)。 - (void)recordClearWithContextBefore:(NSString *)before after:(NSString *)after; /// 记录本次将被 deleteBackward 的内容,并执行 deleteBackward(支持多次累计,撤销时一次性插回)。 - (void)captureAndDeleteBackwardFromProxy:(id)proxy count:(NSUInteger)count; /// 在指定 responder 处执行撤销(向光标处插回删除的内容) - (void)performUndoFromResponder:(UIResponder *)responder; /// 非删除行为触发时,清理撤销状态 - (void)registerNonClearAction; @end NS_ASSUME_NONNULL_END