更新:我找到了simple solution。我知道有一个!
我有一个名为UIView
的tipBalloon
子类,它已添加为UITextView
的子视图,但是当我触摸tipBalloon
时,即使tipBalloon.userInteractionEnabled = YES
(默认情况下),它也不会聚焦于文本视图。 。
我该如何做,以便在我触摸tipBalloon
时将触摸转发到UITextView
?这不应该自动发生吗?
这是一个例子:
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
UITextView *payTextView = [[UITextView alloc] initWithFrame:CGRectMake(5.0f, 30.0f, 180.0f, 100.0f)];
[window addSubview:payTextView];
UIView *tipBalloon = [[UIView alloc] initWithFrame:CGRectMake(6.0f, 10.0f, 100.0f, 30.0f)];
tipBalloon.backgroundColor = [UIColor orangeColor];
[payTextView addSubview:tipBalloon];
[tipBalloon release];
window.backgroundColor = [UIColor brownColor];
[window makeKeyAndVisible];
return YES;
}
最佳答案
更新:一个更简单的解决方案是设置tipBalloon.userInteractionEnabled = NO
。这导致tipBalloon
忽略任何触摸,然后将其传递给UITextView
。我在观看时从@elizablock学到了这项技术。
这是一个基于@dredful的解决方案(整理了一下)。在[tipBalloon release];
之前添加以下代码块:
// Focus payTextView after touching payTextExample.
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:
payTextView action:@selector(becomeFirstResponder)];
[tipBalloon addGestureRecognizer:singleTap];
[singleTap release];