0

ユーザーがUITextFieldを長押しすると、貼り付けオプションを無効にする必要があります。このコードを取得しましたが、貼り付けオプションが非表示になりません。

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

    if ( [UIMenuController sharedMenuController] )
    {
        [UIMenuController sharedMenuController].menuVisible = NO;

    }
    return NO;  
}

誰か助けてもらえますか?

4

4 に答える 4

4

コメントで既に述べたように、「まったく同じコードを UITextField のサブクラスに含めてから、そのクラスのインスタンスを使用する」必要があります。

だから..新しいファイルを作成します..TestPasteとしましょう..UITextFieldのサブクラス

ここに画像の説明を入力

コードを実装ファイル (TextPaste.m) に入れます。

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

    if ( [UIMenuController sharedMenuController] )
    {
        [UIMenuController sharedMenuController].menuVisible = NO;

    }
    return NO;  
}

今。NIB/ストーリーボードに移動し、UITextFiled をクリックして、textview クラスを TextPaste に変更します。

ここに画像の説明を入力

于 2013-01-29T12:22:30.840 に答える
1

新しい Class-> UITextField のサブクラスを作成する必要があります..次に、コード/xibでテキストビュークラスをカスタムクラスに変更し、カスタムTextFieldクラスにメソッドを追加する必要があります

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    if (action == @selector(paste:))
        return NO;
    return [super canPerformAction:action withSender:sender];
}

それならうまくいく

于 2013-01-21T08:48:10.750 に答える
1

Piyaは以下のリンクをチェックしてください:-

http://eureka.ykyuen.info/2010/04/12/iphone-disable-the-cutcopypaste-menu-on-uitextfield/

このコードを確認することもできます:-

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    if (action == @selector(paste:))
        return NO;
    return [super canPerformAction:action withSender:sender];
}
于 2013-01-21T08:32:27.110 に答える
0

これを使って

@implementation UITextFiels (DisableCopyPaste)

- (BOOL)canBecomeFirstResponder
{
    return NO;
}

@end
于 2013-01-21T07:57:00.257 に答える