Скрыть параметры копирования и отмены выбора UITextView после копирования всего текста

Я работаю над приложением обмена сообщениями. Я хочу дать пользователю возможность "копировать", когда они вводят свое сообщение в 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;
}

2 ответа

Решение

Если вы используете iOS5

UITextView принимает UITextInput протокол, который имеет selectedTextRange имущество. Установите для свойства значение nil:

Добавьте приведенный ниже код чуть выше последнего return NO,

self.selectedTextRange = nil;

Надеюсь это поможет

Я решил свою проблему. Я использовал ниже коды для решения.

- (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, Это работает для меня. Это поможет кому-то.

Другие вопросы по тегам