我正在开发一个消息传递应用。我想在用户在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;
}
答案 0 :(得分: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
。它对我有用。这将对某人有所帮助。
答案 1 :(得分:0)
如果您使用的是iOS5
UITextView
采用UITextInput
协议,该协议具有selectedTextRange
属性。将属性设置为nil:
在最后return NO
上方添加以下代码。
self.selectedTextRange = nil;
希望这有帮助