更新:我找到了simple solution。我知道有一个!

我有一个名为UIViewtipBalloon子类,它已添加为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];

07-27 19:01