2

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

Board (UIViewController) 初始化卡片对象

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

Card (UIViewController) 在初始化时,添加 Tap Gesture Recognizer

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

使用 parentViewController 方法的“背景”引用似乎不起作用。为什么?

我如何从卡中引用回董事会以辞职卡的第一响应者?

4

2 回答 2

3

尝试将手势代码添加到 Board 而不是 Card(在 viewDidLoad 中)

UITapGestureRecognizer *tapBackground = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapBackground:)];
[self.view addGestureRecognizer:tapBackground];
于 2013-01-24T13:03:31.140 回答
1
  1. 在视图上放置一个按钮
  2. 按 按钮,然后按编辑器>排列>发送到后面
  3. 然后将按钮的类型更改为圆形矩形到自定义,然后使按钮覆盖所有视图。

在 ViewController.h

@interface ViewController : UIViewController {

IBOutlet UITextField *textField

}

-(IBAction)bgTouched:(id)sender;

@end

在 ViewController.m 中

-(IBAction)bgTouched:(id)sender {

[textField resignFirstResponder]

}

4. 将 textField 连接到 Text Field 并将 bgTouched 连接到背景中的按钮。

于 2013-01-24T13:46:19.030 回答