2017-06-17 19 views
0

textView.becomeFirstResponder()に電話すると、アプリがクラッシュすることがあります。スローされたエラーは奇妙です:アプリがtextview.becomeFirstResponderでクラッシュしました

-[UITextSelectionView keyboardShownWithNotif:]: unrecognized selector sent to instance 0x16899070 

は、時にはそれがです:

-[UIImageView keyboardShownWithNotif:]: unrecognized selector sent to instance 0x178e2610 

私は通知リスナーを追加しました:

NotificationCenter.default.addObserver(self, selector: #selector(keyboardShown(notif:)), name: .UIKeyboardWillShow, object: nil) 
NotificationCenter.default.addObserver(self, selector: #selector(keyboardHidden), name: .UIKeyboardWillHide, object: nil) 

しかし、システムがない理由を観察者が、私は定義されたカスタムビューでありますUITextSelectionViewまたはUIImageViewに通知を送信しますか? iOSの8.4.1で発見

は、ここで何が起こっているのiOS 9.

に再生されませんか?

+0

どこからそのコードを手に入れましたか? –

+0

私はtextfiew/textfieldの代理メソッドで何を書いていますか – vaibby

+0

私は質問を更新しました。 – NeoWang

答えて

2
seems like you added an notif. observer to show/hide keyboard. 
Try to remove observer in dealloc method 

- (void) dealloc { 
     [[NSNotificationCenter defaultCenter] removeObserver:self]; //Or whichever observer you want to remove 
} 
0
迅速な3では

override func viewWillDisappear(_ animated: Bool) { 
    super.viewWillDisappear(animated) 
      NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillShow, object: self.view.window) 
      NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillHide, object: self.view.window) 
} 

または

deinit { 
    NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillShow, object: self.view.window) 
    NotificationCenter.default.removeObserver(self, name: NSNotification.Name.UIKeyboardWillHide, object: self.view.window) 
} 
関連する問題