更新:我找到了simple solution。我知道有一个!
我有一个名为UIView
的{{1}}子类,我已添加为tipBalloon
的子视图,但当我触摸UITextView
时,它没有关注文本视图即使tipBalloon
(默认情况下)。
如何制作,以便当我触摸tipBalloon.userInteractionEnabled = YES
时,触摸会转发到tipBalloon
?这不应该自动发生吗?
以下是一个例子:
UITextView
答案 0 :(得分:3)
更新:更简单的解决方案就是设置tipBalloon.userInteractionEnabled = NO
。这会导致tipBalloon
忽略任何触摸,然后传递给UITextView
。我在观看@elizablock时从WWDC 2011 video Advanced Scroll View Techniques学习了这项技术。
这是基于@dredful的解决方案(只是整理了一下)。在[tipBalloon release];
之前添加以下代码块:
// Focus payTextView after touching payTextExample.
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:
payTextView action:@selector(becomeFirstResponder)];
[tipBalloon addGestureRecognizer:singleTap];
[singleTap release];
答案 1 :(得分:1)
如果UIView
是textView的子视图,您应该可以致电[tipBalloon.superview becomeFirstResponder]
答案 2 :(得分:1)
如果我直接理解您的问题,您需要注册与UIView
的互动。对于UIView
,最好向UITapGestureRecognizer
tipBalloon
在tipBalloon
的{{1}}内,您可以放置:
viewDidAppear:
[self addGestureRecognizerToUIView:self.view];
tipBalloon
这会为您的- (void)addGestureRecognizerToUIView:(id)thisUIView
{
// Single Tap
UITapGestureRecognizer *thisTap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(handleTap:)];
thisTap.numberOfTapsRequired = 1;
[thisUIView addGestureRecognizer:thisTap];
[thisTap release];
}
- (void)handleTap:(UITapGestureRecognizer *)gesture {
[yourUITextView becomeFirstResponder];
}
UIView添加点按。当点击触发时,它可以将tipBalloon
设置为第一响应者。