2011-10-04 157 views
0

使用我在網上閱讀的人說,在應用程序的背景中放置一個按鈕,然後點擊該按鈕處理關閉鍵盤。然而,讀一些其他人說,他們說文本領域首先辭職 - 這是否意味着文本字段已經控制了鍵盤,並不會釋放它,直到明確告訴?隱藏Iphone鍵盤丟失焦點

我.H有:

@interface SearchItems : UIViewController { 

    IBOutlet UIButton *btnKeyboard; 
    IBOutlet UITextField *txtWhat; 
    IBOutlet UITextField *txtWhere; 

} 

@property (nonatomic, retain) IBOutlet UIButton *btnKeyboard; 
@property (nonatomic, retain) IBOutlet UITextField *txtWhat; 
@property (nonatomic, retain) IBOutlet UITextField *txtWhere; 

-(IBAction)closeKeyboard; 

@end 

的.M(減少)

@synthesize btnKeyboard, txtWhat, txtWhere; 

-(IBAction)closeKeyboard { 

    [txtWhere resignFirstResponder]; 
    [txtWhat resignFirstResponder]; 

} 

這是不工作,任何想法?

感謝

湯姆

+0

你的IBAction是否被調用,通常的簽名是' - (IBAction)doSomething:(id)sender'? – jrturton

+1

還會檢查您的網點是否已安裝。 – Eimantas

+0

請問:(id)btnKeyboard或者它會從字面上來看:(id)發件人 – TMB87

回答

1

嘗試使用委託方法resignResponder:

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 
    return YES; 
} 

除了這一個,你也可以使用這個委託方法:

- (void)textFieldDidEndEditing:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 
} 

這兩個方法主要應該能夠解決你的鍵盤隱藏問題而不是使用背景按鈕技術。

+0

你是否只在.m中使用這些文件?你需要把什麼東西放進.h? - Tom – TMB87

+0

你必須在.m文件中使用這些方法。另外不要忘記在連接這些文本字段的xib中連接代理。你也可以像下面這樣在' - (void)viewDidLoad'方法中使用代碼來設置委託方法:'txtWhat.delegate = self;'對你來說很方便。 –