- (void)viewDidLoad
ビュー コントローラーのメソッドにカスタム メニューを追加しました。
UIMenuItem *menuItem = [[UIMenuItem alloc] initWithTitle:@"Read selected" action:@selector(readSelectedText)];
[UIMenuController sharedMenuController].menuItems = [NSArray arrayWithObject:menuItem];
同じコントローラーで、メソッドも実装します。
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
if (action == @selector(readSelectedText)) {
if (textView.selectedRange.length > 0) {
return YES;
}
return NO;
}
return [super canPerformAction:action withSender:sender];
}
初めてテキストを選択すると、メニューに「選択したものを読む」メニュー項目が含まれ、すべてうまく機能します。ただし、その後のテキスト選択では、メニューにはコピーなどの標準のシステム メニュー項目のみが含まれます。- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
メソッドをチェックインしましたが、readSelectedText
アクションで呼び出されることはありません(初めての場合と同様)。
なぜこれが起こるのか分かりますか?