Вы можете реализовать метод copy()
, чтобы "перехватить" операцию копирования и изменить то, что помещено в буфер обмена.
Самый простой способ - это, вероятно, простой подкласс UITextField
:
//
// MyTextField.h
//
// Created by Don Mag on 5/29/19.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface MyTextField : UITextField
@end
NS_ASSUME_NONNULL_END
и
//
// MyTextField.m
//
// Created by Don Mag on 5/29/19.
//
#import "MyTextField.h"
@implementation MyTextField
- (void)copy:(id)sender {
// debugging
NSLog(@"copy command selected");
// get the selected range
UITextRange *textRange = [self selectedTextRange];
// if text was selected
if (textRange) {
// get the selected text
NSString *selectedText = [self textInRange:textRange];
// change it how you want
NSString *modifiedText = [NSString stringWithFormat:@"Prepending to copied text: %@", selectedText];
// get the general pasteboard
UIPasteboard *pb = [UIPasteboard generalPasteboard];
// set the modified copied text to the pasteboard
pb.string = modifiedText;
}
}
@end