2017-06-17 4 views
0

Meine App stürzt manchmal bei dem Anruf textView.becomeFirstResponder() ab. Der Fehler wird ausgelöst, seltsam:App abgestürzt bei textview.becomeFirstResponder

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

Manchmal ist es:

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

Ich habe Benachrichtigung Zuhörer hinzu:

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

Aber der Beobachter ist die benutzerdefinierte Ansicht I definiert sind, warum funktioniert das System Benachrichtigung senden an UITextSelectionView oder UIImageView?

in iOS gefunden 8.4.1, nicht 9.

in iOS reproduziert Was hier geschieht?

+0

Wo möchten Sie diesen Code bekommen haben? –

+0

was hast du geschrieben in Delegate Methode von Textfiew/Textfeld – vaibby

+0

Ich habe die Frage aktualisiert. – NeoWang

Antwort

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

In schnellen 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) 
} 

oder

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) 
} 
Verwandte Themen