我正在使用的是我有一个自定义 UIView,它结合了 UILabel 和 UITextField 作为一些用户输入的一部分。我在应用程序中显示的整个视图中都有其中的几个。好的是能够让用户触摸 UILabel 或 UITextField,然后让 UITextField 允许输入字段。
是否有捷径可寻?
我正在使用的是我有一个自定义 UIView,它结合了 UILabel 和 UITextField 作为一些用户输入的一部分。我在应用程序中显示的整个视图中都有其中的几个。好的是能够让用户触摸 UILabel 或 UITextField,然后让 UITextField 允许输入字段。
是否有捷径可寻?
是的,有而且我实际测试过它。您可以将点击手势识别器添加到您的视图(包含标签和文本视图的视图),如下所示:
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)];
[self addGestureRecognizer:[tap autorelease]];
然后,在里面viewTapped:
-(void)viewTapped:(id)sender {
[self.yourTextField becomeFirstResponder];
}
希望这可以帮助!
将轻击手势识别器添加到您的标签,并在轻击时告诉相应的文本字段成为第一响应者(这会调出键盘)。
// 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];
}
您可以定义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;
}