3

私はメッセージングアプリに取り組んでいます。にメッセージを入力するときに、ユーザーに「コピー」オプションを提供したいと思いますUITextView。ユーザーが「コピー」ボタンを押すと、メッセージがコピーされますが、ポップオーバーが何度も表示され、テキストは引き続き選択可能です。

これを制御する方法がわかりません。参考までにソースコードを貼っておきます。

のサブクラスを書きましたUITextView

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    NSLog(@"Action : %@", NSStringFromSelector(action));
    NSLog(@"Sender : %@", sender);
    if (action == @selector(copy:))
    {
        [self selectAll:self];
        //return [super canPerformAction:action withSender:sender];
        return YES;
    }
    else if (action == @selector(cut:))
    {
        return NO;
    } 
        return NO;
}
4

2 に答える 2

1

私は自分の問題を解決しました。以下のコードを使用して解決しました。

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender
{
    if (action == @selector(copy:))
    {
        [self selectAll:self];

        return YES;
    }
    else if (action == @selector(cut:))
    {
        return NO;
    } 
        return NO;
}


- (void)copy:(id)sender 
{
    UIPasteboard *pastBoard = [UIPasteboard generalPasteboard];
    [pastBoard setString:self.text];
    self.selectedTextRange = nil;
    [self resignFirstResponder];
}

に感謝しMr.Vimal Venugopalan and Mr.Mruegます。それは私のために働いています。それは誰かに役立ちます。

于 2012-09-14T11:36:35.250 に答える
0

iOS5をお使いの場合

UITextViewUITextInputプロパティを持つプロトコルを採用していselectedTextRangeます。プロパティを nil に設定します。

最後の のすぐ上に以下のコードを追加しますreturn NO

self.selectedTextRange = nil;

お役に立てれば

于 2012-09-14T11:33:09.350 に答える