2013-01-24 42 views
2

我有一个(UIViewController中),它实例对象(UIViewControllers)。每张卡片上都有一个texfield。为了通过点击非卡区域(=电路板的视图)来移除键盘,我需要参考在UITapGestureRecognizer中指定的电路板。这是我目前的方法。隐藏键盘 - 手势参考文档

(UIViewController中)初始化卡对象

-(void) addCard:(id)touchEvent{ 
    CardViewController *card = [[CardViewController alloc]initItemWithText:@"..."]; 
    [self addChildViewController:card]; 
    [self.view addSubview:card.view]; 
} 

(UIViewController中)在初始化,使用parentViewController方法添加敲击手势识别器

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
... 
    UITapGestureRecognizer *tapBackground = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapBackground:)]; 
    [self.parentViewController.view addGestureRecognizer:tapBackground]; 
... 
} 

“背景” 参考似乎没有工作。为什么?

我该如何从卡中引用回板卡,以便轻按卡上的第一个响应者?

回答

3

尝试添加动作代码到板,而不是卡(在viewDidLoad中)

UITapGestureRecognizer *tapBackground = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapBackground:)]; 
[self.view addGestureRecognizer:tapBackground]; 
+0

听起来不错。然而,我需要定义哪个textField我想从“[textField resignFirstResponder];”退出响应者...而且我没有从董事会直接提到一张卡片。如果我错了,请纠正我。 – Bernd

+0

哦,我找到了解决方案。使用“[self.view endEditing:TRUE];”而不是“resignFirstResponder”做的工作! – Bernd

1
  1. 放置一个按钮,在视图上
  2. 按下按钮,然后编辑>排列>发送到备份
  3. 然后去改变按钮的类型为Round rect to Custom,然后使按钮覆盖所有的视图。

在ViewController.h

@interface ViewController : UIViewController { 

IBOutlet UITextField *textField 

} 

-(IBAction)bgTouched:(id)sender; 

@end 

在ViewController.m

-(IBAction)bgTouched:(id)sender { 

[textField resignFirstResponder] 

} 

4。将文本字段连接到文本字段,然后触摸背景中的按钮。