2017-04-05 50 views
4

我面臨一個荒謬的問題textField,我有兩個文本框,即tfA和tfB,我設置了代表和所有這些文本框,我想要的是,如果我點擊tfA然後它應該打印一些東西,它是打印,如果我點擊tfB它應該出現鍵盤,以及它運行良好,但是當我再次點擊tfA然後它應該打印一些東西,鍵盤應該根據在那裏給出的條件解僱,但鍵盤沒有解僱那裏也self.view.endEditing(true)不在這裏工作。代碼在屏幕截圖中給出,我在這裏做錯了什麼?UITextField的resignFirstResponder不工作既不工作self.view.endEditing()

CODE:斯威夫特3

import UIKit 

class ViewController: UIViewController, UITextFieldDelegate { 
    @IBOutlet weak var tfA: UITextField! 
    @IBOutlet weak var tfB: UITextField! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     tfA.delegate = self 
     tfB.delegate = self 
    } 

    func textFieldDidBeginEditing(_ textField: UITextField) { 
     if textField == tfA{ 
      print("TFA Clicked") 
      textField.resignFirstResponder() 
      self.view.endEditing(true) 
     }else{ 
      tfB.becomeFirstResponder() 
     } 
    } 

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

     return true 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 


} 

截圖

enter image description here

+0

刪除'textField.resignFirstResponder()'和嘗試。當你從tfB回來時,它的鍵盤處於活動狀態。所以'self.view.endEditing(true)'足以讓視圖中的鍵盤處於活動狀態。 – ron27

+0

如果你不想讓tfA可編輯,那麼你爲什麼不簡單地'tfA.isEnabled = false' –

+0

@ ron27我試過了,但是沒有工作。 –

回答

6

試試這個

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { 
    if textField == tfA 
    { 
     self.view.endEditing(true) 
     tfaAction() 
     return false 
    } 
    else 
    { 
     return true 
    } 
} 
func tfaAction(){ 

} 
+0

謝謝你的努力,但它也不工作,我的問題是,如果你點擊tfB鍵盤將顯示,如果你點擊tfA鍵盤應該被解僱。 另外,如果您先點擊tfA,則不應顯示鍵盤。但在此我需要點擊tfA的操作。 –

+0

完美,其工作相應..感謝您的努力.. –

4

回覆移動你textFieldDidBeginEditing方法,用textFieldShouldBeginEditing更換:

func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool { 
    if textField == tfA{ 
    print("TFA Clicked") 
    self.view.endEditing(true) 
    return false 
    }else{ 
    return true 
    } 
} 
+0

完美,其相應的工作..感謝您的努力.. –