さまざまな理由から、選択が変更されるたびにテキストビュー内のテキストにアクセスする必要があるため、デリゲートメソッドtextViewDidChangeSelection()を実装しました。しかし、何らかの理由で、このメソッド内からtextView.textにアクセスしようとすると、時にはそれが空でない場合でも空に戻ります。たとえば、このコードを実行します。textViewDidChangeSelectionメソッドは、TextView.textが空であると考えます。
func textViewDidChangeSelection(_ textView: UITextView) {
print("Called textViewDidChangeSelection")
if textView.text.isEmpty {
print("textview is empty")
} else {
print("textview is not empty")
}
}
私のコードでこの例を使用すると、空ではないtextViewをクリックし、「textview is empty」と表示されることがあります。シミュレータを再実行してtextViewをクリックした直後に最も頻繁に発生する傾向があるようですが、textViewを初めてクリックしたとき(他のtextViewをクリックした後)、または私は別のビューからtextViewsを含んでいる私のUIViewにセグを返す。
これはなぜ起こるのですか?
答えをありがとう!実際には 'textViewDidBeginEditing'メソッドで変数を設定し、それを参照するだけで回避策を見つけることができました。 – CosmicBuffalo