3

これはよくある質問の 1 つです。ちなみに、以下のリンクを見つけました。

UIWebView でのユーザー選択の無効化

しかし、メニュー選択からコピーと定義項目を削除することはできません。「クイック」と「別の」アイテムをメニューに表示したいだけです。誰でも私に道を示すことができますか?お時間をいただきありがとうございます。これが私のコードとスクリーンショットです。

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{


    if (action == @selector(quick:)) {

        NSLog(@"my quick view");
        return YES;

    }else if (action == @selector(another:)){

        NSLog(@"my another view");
        return YES;

    }else if (action == @selector(copy:) ||
        action == @selector(paste:)||
        action == @selector(cut:) ||
        action == @selector(define:) )
    {
        return NO;
    }

    return [super canPerformAction:action withSender:sender];

}

ここに画像の説明を入力

4

2 に答える 2

1

まず、問題を解決するには、に変更define:_define:て関連するオプションを削除します。

ただし、_define:は Apple のプライベート API の関数であるため (理由により_)、App Store でリリースしたい場合、製品で使用することはできません。

ただし、copy:オプションに関しては、canPerformActionそれを削除する必要があります。

参考までに、ここに canPerformAction が呼び出すプライベート API 関数のリストを添付します。

_promptForReplace:

_showTextStyleOptions:

_define:

_addShortcut:

_accessibilitySpeak:

_accessibilitySpeakLanguageSelection:

_accessibilityPauseSpeaking:

したがって、上記の機能を削除する場合は、カスタマイズされたメニュー バーを作成する必要があります。以下のこのビデオは、トリックを実行するのに役立ちます。

http://www.youtube.com/watch?v=SB7w8JEJSrc

幸運を!

編集:

これがあなたの解決策です:

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{


if (action == @selector(quick:)) {

    NSLog(@"my quick view");
    return YES;

}else if (action == @selector(another:)){

    NSLog(@"my another view");
    return YES;

}

return NO;

}
于 2013-11-27T00:33:15.810 に答える