6

我正在使用 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.|在复制消息时显示。请帮助我做到这一点。提前致谢。

4

2 回答 2

2

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

一旦你完成了你所拥有的应该可以工作,然后你应该为全选返回 no

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

您也可能希望为 cut 返回 no:还假设您不希望用户从 textView 中删除文本。

此外,这些不需要是 if else 语句,因为它们不相互依赖

它们实际上是按此顺序调用的

剪切:复制:选择:全选:粘贴:删除:

因此,酌情删除功能。

于 2012-08-03T08:22:23.650 回答
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;
 }
于 2012-08-03T08:28:23.733 回答