我在View中有一个UITextView(来自InterfaceBuilder)。这包含一个UIScrollView。
现在我必须检测UITextView中的触摸事件,因为我必须关闭自己的子菜单。
Apple UITextView位于UIScrollView中,为了检测UIScrollView中的触摸,我将使用UITextView的UIScrollView的UITouch Funktion。
我有什么建议吗?
答案 0 :(得分:3)
UITextView是UIScrollView的子类。当你说“包含UIScrollView?”时,这就是你的意思吗?
您可以在这里采取几种方法。如果您关注的触摸是文本视图中的第一次触摸,因此开始编辑,您可以成为其委托并实现此方法:
- (void)textViewDidBeginEditing:(UITextView *)textView
如果您需要了解文本视图中出现的任何点按,而不仅仅是初始编辑点击,您可以使用UITapGestureRecognizer
来监听点击。像这样:
// in the method where you configure your view
UITapGestureRecognizer *tap = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(textViewTapped:)] autorelease];
// assuming textView is pointing to your UITextView
[textView addGestureRecognizer:tap];
然后在你班级的其他地方实施行动方法:
- (void)textViewTapped:(id)sender {
// dismiss your menu or whatever
}
请注意,我实际上没有测试过这种情况,但是它应该可行。手势识别器非常棒。