2

我正在使用的是我有一个自定义 UIView,它结合了 UILabel 和 UITextField 作为一些用户输入的一部分。我在应用程序中显示的整个视图中都有其中的几个。好的是能够让用户触摸 UILabel 或 UITextField,然后让 UITextField 允许输入字段。

是否有捷径可寻?

4

3 回答 3

1

是的,有而且我实际测试过它。您可以将点击手势识别器添加到您的视图(包含标签和文本视图的视图),如下所示:

UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)];
[self addGestureRecognizer:[tap autorelease]];

然后,在里面viewTapped:

-(void)viewTapped:(id)sender {
    [self.yourTextField becomeFirstResponder];
}

希望这可以帮助!

于 2013-06-07T00:09:58.510 回答
1

将轻击手势识别器添加到您的标签,并在轻击时告诉相应的文本字段成为第一响应者(这会调出键盘)。

    // In your init or awakeFromNib:
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(labelTapped:)];
    self.label.userInteractionEnabled = YES;
    [self.label addGestureRecognizer:tap];

...

- (void)labelTapped:(id)sender
{
    [self.textField becomeFirstResponder];
}
于 2013-06-07T00:11:51.537 回答
0

您可以定义UIGestureRecognizer委托方法并检查这是所需的点击手势区域。如果是则返回 TRUE 否则返回 FALSE 。

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {

    // Disallow recognition of tap gestures in the segmented control.
    if ((touch.view == yourButton)) {//change it to your condition
        return NO;
    }
    return YES;
} 
于 2013-09-30T10:05:00.180 回答