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