2

ここにリストされている解決策を認識しています:

プログラムでUITextFieldからコピーペーストオプションを無効にする方法

そしてここ:

UITextField 貼り付けを無効にする方法は?

しかし、それはまさに私がやりたいことではありません。ユーザーがテキスト フィールドをタップ アンド ホールドして、貼り付けオプションが利用可能であることを確認できるので、少し面倒だと思います。ユーザーがそれをタップすると、テキストフィールドはそのアクションに反響しません。

表示されるオプションのリストから「貼り付け」オプションを実際に削除したい。それは可能ですか?どんな方向性でも大歓迎です。前もって感謝します。

4

3 に答える 3

2
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{

    if(textField == txtCardNumber)
    {
        if([string length]>1){
            //Disable to paste action
            return NO;

        }
     }
}
于 2014-02-14T08:51:12.130 に答える
1

もう 1 つの方法は、UITextField をサブクラス化し、canPerformAction:withSender: メソッドをオーバーライドすることです

@implementation MyTextView
- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
    if (action == @selector(paste:)) {
        return NO;
    }
    return [super canPerformAction:action withSender:sender];
}
@end
于 2014-02-14T09:02:21.500 に答える
0

以下の方法を使用

-(BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
     //Do your stuff
     [[NSOperationQueue mainQueue] addOperationWithBlock:^{
     [[UIMenuController sharedMenuController] setMenuVisible:NO animated:NO];
     }];
     return [super canPerformAction:action withSender:sender];
}
于 2015-05-18T05:40:24.017 に答える