2013-01-24 60 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。將文本字段連接到文本字段,然後觸摸背景中的按鈕。