Я пытаюсь заставить UITextViewTextDidChangeNotification работать. Я новичок в использовании NSNotificationCenter, поэтому мне сложно понять, что происходит. У меня есть UITextView в раскадровке, и я создал IBOutlet для него в моем классе ViewController и назвал его textView.Swift NSNotificationCenter?
Это моя viewDidLoad функция:
override func viewDidLoad() {
super.viewDidLoad()
origin = self.view.frame.origin.y
if let field = textView{
field.placeholder = placeholder
field.layer.cornerRadius = 8
field.layer.borderWidth = 0.5
field.layer.borderColor = UIColor.grayColor().CGColor
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyPressed:"), name:UITextFieldTextDidChangeNotification, object: nil);
}
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: nil);
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name:UIKeyboardWillHideNotification, object: nil);
}
Извещения клавиатуры отлично работают. Насколько я понимаю, они называют функцию с тем же именем, что и селектор. Это верно? Или здесь что-то происходит? Я сделал функцию под названием keyPressed, которая взяла NSNotification как параметр, но эта функция никогда не вызывалась, тогда как когда я включаю клавиатуру, вызываются функции keyboardWillShow и keyboardWillHide. Может кто-нибудь объяснить, что происходит?
А вы что оператор if действительно выполняется? Я бы поставил println («Working») или что-то там, просто чтобы быть уверенным. – vegather
Я отлаживал его, и я знаю, что он выполняется. Я все понял. Мне нужно было отправить уведомление ... – tdon
В чем именно проблема, с которой вы сталкиваетесь? Также удалите редактирование решения. Если вы нашли решение, добавьте его в качестве ответа и примите свой ответ. Так работает Stack Overflow. – jww