2012-08-03 82 views
6

我正在使用UITextView的iPhone应用程序中工作。我想只允许用户复制留言并粘贴留言。但我不想显示全选,选择,定义和其他。我正在关注下面的代码来控制选项。但是,所有的选项都显示在UITextView点击。如何在UITextView iPhone应用程序中控制复制,粘贴,全选,定义?

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{ 
    if (action == @selector(paste:)) 
    { 
     return NO; 
    } 
    else if (action == @selector(copy:)) 
    { 
     return NO; 
    } 

    return [super canPerformAction:action withSender:sender]; 
} 

任何人都可以请帮助我这样做。同时我也不想在复制邮件时显示|.Text.|。请帮助我做到这一点。提前致谢。

回答

2

首先,如果上面的代码不工作,那么您可能忘记将您的UITextView的类更改为实现上述方法的自定义类。

一旦你这样做,你有什么应该工作,你应该再回到没有为全选也

if (action == @selector(selectAll:)) 
     { 
      return NO; 
     } 

也可能要返回没有用于切割:还假设你不希望用户从textView中删除文本。

此外,这些并不需要是如果else语句,因为它们不依赖于彼此

他们实际上称为顺序

切: 副本: 选择: 全选: 粘贴: 删除:

因此,删除适当的功能。

+0

感谢您的回答。你能否告诉我在UITextView中复制文本时禁用两行蓝色?谢谢。 – Gopinath 2012-08-03 09:22:46

2

创建UITextField的子类并覆盖方法canPerformAction:withSender:在该类中。

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 
{ 
    if (action == @selector(paste:) ||action == @selector(copy:)) 
    { 
     return [super canPerformAction:action withSender:sender]; 
    } 


    return NO; 
} 
+0

这两个答案都是正确的,并且很难接受。但他首先回答说为什么我接受了他的答案。别误会我。感谢您的回答。你能否告诉我在UITextView中复制文本时禁用两行蓝色?谢谢。 – Gopinath 2012-08-03 09:23:45

相关问题