复制所有文本后隐藏复制和取消选择 UITextView 选项
Posted
技术标签:
【中文标题】复制所有文本后隐藏复制和取消选择 UITextView 选项【英文标题】:Hide Copy and Deselect UITextView options after copying all text 【发布时间】:2012-09-14 09:35:29 【问题描述】:我正在开发一个消息传递应用程序。当用户在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;
【问题讨论】:
你试过textView.selectedTextRange = nil;
显示错误:从不兼容的类型“void *”分配给“NSRange”(又名“struct _NSRange”)。但是一旦用户按下复制按钮,我如何隐藏复制选项。任何的想法?谢谢。
谁能帮我解决这个问题?提前致谢。
this question 会帮助你的事业.. 如果没有,那么评论
@Maulik 是的,你是对的。一旦我们通过按下复制按钮从 UITextView 复制文本。这应该是隐藏复制按钮并取消选择所有 UITextview 文本。你能帮帮我吗?
【参考方案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
。它对我有用。这对某些人会有所帮助。
【讨论】:
【参考方案2】:如果你使用的是ios5
UITextView
采用UITextInput
协议,该协议具有selectedTextRange
属性。将属性设置为零:
在最后一个return NO
上方添加以下代码。
self.selectedTextRange = nil;
希望对你有帮助
【讨论】:
感谢您的回答和链接。我从那里得到了更多的想法。我已经解决了我的问题。再次感谢。 我接受了你的回答。但是我没有正确使用这种方式。你能告诉我如何使用 UITextView。 K i 会从谷歌上看这个。总之谢谢朋友。我希望你将来能帮助我。再次感谢。以上是关于复制所有文本后隐藏复制和取消选择 UITextView 选项的主要内容,如果未能解决你的问题,请参考以下文章
为啥从网上复制的东西到WORD里面文字格式就变了,显示乱码了呢