в сториборде, и по touch up inside должна отправлять сообщение , вызываю в textViewShouldReturn sendMessage , по итогу сначала отъезжает клавиатура и потом нужно ещё раз нажать чтобы отправилось сообщения
В чем может быть проблема ?
В том, что у тебя поле текстовое идет как firstResponder, попробуй в textViewShouldReturn сначала вызвать textField.resignFirstResponder()
func textViewShouldReturn(_ textView: UITextView) -> Bool { messageTextField.resignFirstResponder() self.sendMessageBtnClicked(self) return true }
так а у кнопки нет IBAction? по нажатия выполнить нужную логику и просто сделать endEditing
Есть @IBAction func sendMessageBtnClicked(_ sender: Any) { if !isSendingMessage { self.view.window?.endEditing(true) guard let message = messageTextField.text, !(message.isEmpty || message == placeholderText) else { Alert.show(message: "Please insert message") return } else { activityIndicator.startAnimating() isSendingMessage = true apiManager.postDialogMessages(dialogID: chatId, text: message, completionHandler: { [weak self] result in guard let self = self else { return } self.activityIndicator.stopAnimating() self.isSendingMessage = false switch result { case .success(let responseDictionary): if let dialog = responseDictionary[apiManagerResultKeys.dialog.rawValue] as? Dialogs{ self.dialogMessages.insert(dialog, at: 0) self.messageTextField.text = self.placeholderText self.messageTextField.textColor = UIColor.lightGray self.separateByDate() } case .failure(let errorMessage): LogManager.printMessage(message: errorMessage) } }) } } }
Если в телеге обернуть код в с обеих сторон, он будет выглядеть не так грустно) ```if awesomeCheck() { awesomeFunction() }
действительно на первый взгляд смущает обращение через window
Обсуждают сегодня