如何在UITextView iPhone应用程序中控制复制,粘贴,全选,定义?

时间:2012-08-03 08:00:40

标签: iphone ios menu controls uitextview

我正在使用UITextView在iPhone应用程序中工作。我想允许用户只能复制邮件并粘贴邮件。但我不想显示全选,选择,定义和其他。我按照以下代码来控制选项。但是,所有选项都显示在UITextView单击中。

- (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 个答案:

答案 0 :(得分:2)

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

一旦你完成了你已经得到的东西应该工作,然后你应该返回no for select all

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

你也可能想要为剪切返回no:还假设你不希望用户从textView中删除文本。

此外,这些不需要if else语句,因为它们不依赖于彼此

实际上他们按此顺序调用

切: 复制: 选择: 全选: 糊: 删除:

因此,请根据需要删除功能。

答案 1 :(得分: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;
 }