36 lines
1.1 KiB
Objective-C
36 lines
1.1 KiB
Objective-C
//
|
||
// KBBackspaceUndoManager.h
|
||
// CustomKeyboard
|
||
//
|
||
|
||
#import <UIKit/UIKit.h>
|
||
|
||
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<UITextDocumentProxy>)proxy count:(NSUInteger)count;
|
||
|
||
/// 在指定 responder 处执行撤销(向光标处插回删除的内容)
|
||
- (void)performUndoFromResponder:(UIResponder *)responder;
|
||
|
||
/// 非删除行为触发时,清理撤销状态
|
||
- (void)registerNonClearAction;
|
||
|
||
@end
|
||
|
||
NS_ASSUME_NONNULL_END
|