PDFファイルが表示されたWebビューがあります。Web ビューの標準として、ユーザーはテキストを選択し、コピー、切り取りなどの標準操作を実行できます。カスタム アクションを表示するためのカスタム UIMenuController を追加する必要があります。標準の UIPasteboard で選択したテキストをコピーして、カスタム セレクターに渡す方法がわかりません。私は使用しようとしました
[[UIApplication sharedApplication] sendAction:@selector(copy:) to:nil from:self forEvent:nil];
メソッドで、選択したテキストをコピーできますが、この値をメソッドに戻す方法がわかりません。
これは私のコードです(簡略化されています)ビューでロードされました。セレクターmyCopyを実行するために、UIPasteboardChangedNotificationのオブザーバーを1つ追加しました。
- (void)viewDidLoad
{
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myCopy:) name:UIPasteboardChangedNotification object:nil];
UIMenuItem *schedaMenuItem = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"POPSCHEDA",nil) action:@selector(copyScheda:)];
UIMenuItem *istruzionetMenuItem = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"POPISTR",nil) action:@selector(copyIstruzione:)];
[[UIMenuController sharedMenuController] setMenuItems:[NSArray arrayWithObjects:MenuItem1,MenuItem2,nil]];
}
-(void)myCopy:(id)sender {
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSString* copyCode = pasteboard.string;
//perform the necessary action
}
-(void)copyScheda:(id)sender {
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSString* copyCode = pasteboard.string;
//perform the necessary action
}
-(void)copyIstruzione:(id)sender {
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
NSString* copyCode = pasteboard.string;
//perform the necessary action
}
ご協力いただき、ありがとうございました。