我在尝试更改剪切/复制/粘贴行为时遇到了很大问题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,然后选择了它的"类标识"到我几乎创建的类之前,我知道这个文件是作为子类工作的,但它只是不响应粘贴事件.
谢谢.
如果有人仍然需要简短而简单的解决方案,我将分享我的解决方案。我使用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)
| 归档时间: |
|
| 查看次数: |
6158 次 |
| 最近记录: |