2016-02-12 81 views
0

我一直試圖在textview期間取消鍵盤來解散,但它仍然不會改變返回按鈕的動作。關閉textview的鍵盤

func textView(textView: UITextView, shouldChangeTextInRange range: NSRange, replacementText  text: String) -> Bool { 
    if text == "\n" 
    { 
     textView.resignFirstResponder() 
     return false 
    } 
    return true 
} 

我在https://www.youtube.com/watch?v=IsnoS8_G2SU

以下教程現在我已經基本上覆制代碼100%。

P.S. textfield的插座被命名爲Textviews

請幫忙!

編輯:有人將此標記爲重複所以讓我解釋它爲什麼不是 - 我已經做了它告訴我要做的事情,我不知道爲什麼它不適用於我。

+0

所以你使用'UITextfield',但實現'UITextview'委託?嘗試將其更改爲「UITextfield」委託。 –

+0

或者(如果你的確在使用'UITextView'),確保你已經在'viewDidLoad(...)'中包含'textView.delegate = self',並且你是view controller符合'UITextViewDelegate' ('... ViewController:UIViewController,UITextViewDelegate')。 – dfri

+0

最重要的是:你使用的是「UITextField」還是「UITextView」? (你在上面的問題中混合使用這些術語,而兩者的解決方案則不同)。 – dfri

回答

0

您已經使一切正確,但缺少一個步驟。

爲了通過響應者隱藏或顯示鍵盤,您必須設置委託,否則它將無法工作。

例如,您可以在viewDidLoad中做到這一點:

override func viewDidLoad() { 
    myTextView.delegate = self 
} 
+0

如果OP實際上使用的是「UITextField」而不是「UITextView」,那麼他並沒有做到一切正確。另一方面,如果他(正如我們假設的那樣)使用後者,則在上例中myTextfield是一個不幸的屬性名稱。另外,'overide'應該是'override','viewDidLoad'應該包含'super.viewDidLoad()'。 – dfri

-4

如果您的文本字段是Textviews,那麼你應該有

Textviews.resignFirstResponder()

我希望這有助於

+0

你不看他的問題嗎? – Anokrize