2013-02-25 69 views
0

在你解僱我的問題之前,這是一個重複的問題:iphone, dismiss keyboard when touching outside of UITextField 問題是我的文本字段是我的原型單元的一部分,它有它自己的uitableview單元的子類,所以我不知道如何在嘗試辭退第一個響應者時參考文本字段。所以我不能這樣做:關閉在桌面上敲擊鍵盤

-(void)dismissKeyboard { 
    [aTextField resignFirstResponder]; 
} 

我該如何解決這種情況?

感謝

+0

你可以,如果你一個'UITextField'財產加起來就是你的'UITableViewCell'子類並將其連接屬性爲你在你的原型創建的文本字段。 – 2013-02-25 07:21:31

+0

@斯科特,我已經這樣做了。我將如何引用它,因爲這個關閉鍵盤是我的視圖控制器類的一部分,而不是uitableviewcell子類。 – 2013-02-25 07:34:08

+0

檢查此響應:http://stackoverflow.com/a/15160559/656600 – rptwsthi 2013-03-01 14:53:02

回答

1

試試這個代碼,這是非常有用的:

-(void)touchesBegan :(NSSet *)touches withEvent:(UIEvent *)event 

{ 

    [aTextField resignFirstResponder]; 

    [super touchesBegan:touches withEvent:event]; 

} 
+0

touchesBegan不適合我,因爲我的表視圖是在滾動視圖內。 – 2013-02-25 07:23:19

0

我認爲在表視圖細胞外敲擊鍵盤解僱並不好。用戶可能會不小心碰到外面,或者他可以在輸入文字時滾動嗎?您可以使用UITextFieldDelegate到dissmiss鍵盤

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [textField resignFirstResponder] 
} 
+0

Anil請仔細閱讀我的問題。我試圖按照這些說明:http://stackoverflow.com/questions/5306240/iphone-dismiss-keyboard-when-touching-outside-of-textfield – 2013-02-25 07:20:29

+0

嗯..也許,但我需要做到這一點基於我的設計。你能幫助我嗎? – 2013-02-25 07:39:43

0

如果我得到了你的權利,你要辭職鍵盤詭計敲擊的textfield外面,但你沒有你的textfield的參考。

試試這個;

  • 採取全球文本框,讓在textFieldDidBeginEditing集引用文本字段稱它爲現在reftextField
  • - (void) textFieldDidBeginEditing:(UITextField *)textField{ 
        reftextField = textField; 
    } 
    
  • 現在你可以快樂地在任何按鈕時鐘使用,(上增加一個透明的按鈕開始編輯推薦)

    - (void)dismissKeyboard { 
         [reftextField resignFirstResponder]; 
    } 
    
  • 或爲辭職完成按鈕嘗試此操作。

    //for resigning on done button  
    - (BOOL) textFieldShouldReturn:(UITextField *)textField{ 
        [textField resignFirstResponder]; 
        return YES; 
    }