2015-09-16 128 views
3

我在包含UIViewController和SettingsViewDelegate的ViewController類中運行此代碼。 View Controller場景包含一個帶有滾動條的文本視圖。關閉UIViewController中的鍵盤

@IBOutlet weak var tvEditor: UITextView! 

override func viewDidLoad() { 
    super.viewDidLoad()  

    // Hide keyboard via swipeDownGestureRecognizer. 

    let swipeGesture: UISwipeGestureRecognizer = UISwipeGestureRecognizer (target: self, action: "hideKeyboard") 

    swipeGesture.cancelsTouchesInView = false 

    UISwipeGestureRecognizerDirection.Down 

    } 

    func hideKeyboard() { 
    tvEditor.resignFirstResponder() 
} 

當我運行我在iPhone模擬器/設備項目,鍵盤並沒有向下輕掃迴應。我將設備的方向更改爲橫向,然後再回到縱向,即鍵盤消失時的方向。有人可以告訴我我要去哪裏嗎?

+0

您還沒有將此「swipeGesture」添加到任何視圖。 – Nishant

回答

2

首先,請將swipeGesture添加到您的視圖控制器。 而且......

func hideKeyboard() { 
    self.view.endEditing(true) 
} 

它會爲您的項目工作正常。 希望它能幫助你。

+0

謝謝,它確實工作! –

+0

不客氣! :)當你有另一個問題,請讓我知道。 – Richard

+0

我將swipeGesture添加到了我的viewcontroller,但沒有將tvEditor.resignFirstResponder()更改爲self.view.endEditing(true)。 這工作很好。當我做出這樣的改變時,Xcode給了我 - 致命錯誤:意外地發現了零,同時展開一個可選值。 我將代碼改回原來的樣子,但我仍然收到錯誤。這是否與錯誤配置手勢有關,或者是否存在與我的代碼有關的其他問題?正如你可能猜到的,我是一個初學者。 –