检测用户单击UITextView中的粘贴按钮的时间

Joh*_*ger 6 iphone uitextview

我在尝试更改剪切/复制/粘贴行为时遇到了很大问题UITextView.我想要实现的是:检测用户何时粘贴了一些文本UITextView.当我发现这个时,我会检查数据并做我的事情.

根据文件,我发现了UIResponder.

所以我创建了一个继承的简单类UITextView.在.m文件中我创建了一个名为的函数.

-(void) paste:(id)sender{
  NSLog(@"paste button was pressed do something");
}
Run Code Online (Sandbox Code Playgroud)

但出于某种原因,似乎永远不会开火.我可以让select语句工作并跟踪数据.

-(void) select:(id)sender
Run Code Online (Sandbox Code Playgroud)

1.这是在UITextView中检测粘贴的正确方法吗?2.现在我正在跟踪购买多少字符UITextView更改,如果它大于一个字符,那么我怀疑它可能是一个粘贴操作.但由于iPhone可以自动完成单词,例如Wedn(到周三),它可能不是粘贴操作.

在Interface Builder中,我在我的NIB文件中选择了我的textView,然后选择了它的"类标识"到我几乎创建的类之前,我知道这个文件是作为子类工作的,但它只是不响应粘贴事件.

谢谢.

Aou*_*yio 2

如果有人仍然需要简短而简单的解决方案,我将分享我的解决方案。我使用REKit 项目中精彩的 NSObject+REResponder 类别。解决方案就像这样简单:

- (void)hookMessageTextFieldPasteAction
{
    void (^textFieldDidPasteBlock)(id receiver, id sender) = ^(id receiver, id sender)
    {
        NSLog(@"paste hook");
    };
    [self.messageTextField respondsToSelector:@selector(paste:) withKey:nil usingBlock:textFieldDidPasteBlock];
}
Run Code Online (Sandbox Code Playgroud)