Текстовое представление в табличном представлении устанавливает текст для всех заглавных букв [Ma c Catalyst] - PullRequest
1 голос
/ 26 апреля 2020

Я адаптирую свое приложение для iPad под Ma c с Ma c Catalyst и получаю необычное поведение с UITextView внутри UITableViewCell. Когда я представляю представление, у меня автоматически фокусируется текстовое представление, но на Ma c, что бы я ни набирал в нем, текст отображается с заглавной буквы . Этого никогда не случалось на версии iPhone или iPad. Я не уверен, почему это происходит (моя блокировка заглавных букв не включена), я попробовал несколько клавиатур и получил тот же результат. Это также не происходит каждый раз, это очень случайно.

Вот мой код:

class TextViewCell: UITableViewCell {

     override func awakeFromNib() {
          super.awakeFromNib()

          textView.delegate = self
          textView.isScrollEnabled = false
          textView.returnKeyType = .done
     }

     //populate funcion called by the tableview. Just sets the textView into focus if it's the first time the view shows
     func populate(isFirstLoad: Bool = false) {

          //I set isFirstLoad to false after calling on this function in the tableview so this is only called on once
          if isFirstLoad {
               self.titleTF.becomeFirstResponder()
          }
     }
}


// MARK: - textView functions
extension TextViewCell: UITextViewDelegate {
     func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
          if (text == "\n") {
               textView.resignFirstResponder()
               return false
          }
          return true
     }
}

Кто-нибудь еще сталкивался с этой проблемой и знает, как ее исправить ???

1 Ответ

1 голос
/ 26 апреля 2020

У меня была такая же проблема в прошлом. Так как он на Ma c, я не думаю, что заглавные буквы необходимы, поэтому просто установите textView.autocapitalizationType = .none, тогда у него не будет такой странной ошибки. Вы также можете обернуть его в #if targetEnvironment(macCatalyst), чтобы он делал это только на Ма c

...