2017-01-07 17 views
1

Swift新功能並製作簡單的待辦事宜應用程序。在Swift上單擊文本字段時隱藏UIButton

我想弄明白,當一個UI TextField被點擊時,應該隱藏某個按鈕。只有當用戶在鍵入應該出現的任務後按下Enter鍵時纔會出現。

我有一個IBAction爲設置爲我的文本字段隱藏的UIButton當點擊像這樣,但它不工作:

@IBAction func textFieldClicked(_ sender: Any) { 

     self.cellButton.isHidden = true 

} 

而且我已經建立了我的textfieldshouldreturn功能,當用戶按下如下輸入:

func textFieldShouldReturn(_ textField: UITextField) -> Bool { 

    self.cellButton.isHidden = false 
    self.cellButton.isUserInteractionEnabled = true 
    textField.resignFirstResponder() 
    return true 
} 

對於文本字段的IBAction僅在按下輸入時才響應?我試圖搞亂國旗,但那也沒用。

任何幫助表示讚賞。

回答

3

對此,您不需要IBAction。相反,實施另一種UITextFieldDelegate方法 - textFieldDidBeginEditing

func textFieldDidBeginEditing(_ textField: UITextField) { 
    self.cellButton.isHidden = true 
} 

當文本字段成爲第一個響應者時調用此代理。

在略有不相關的說明中,最好從textFieldShouldReturn方法中返回false而不是true

+0

哇,很容易修復非常感謝!我總是忘記了所有的委託方法。我可以問你爲什麼說最好在textFieldShouldReturn方法中返回false而不是true? – brownmamba

+0

這只是一個不明確的案例。看到[這個問題](http://stackoverflow.com/questions/21077842/uitextview-adding-new-line-unintentionally)和我的答案的解釋。 – rmaddy

0

請使用代表方法textFieldDidDeginEditing並隱藏按鈕。