1. ホーム
  2. ios

[解決済み] uitextviewの文字数を制限する

2023-06-06 20:20:08

質問

ある文字列をツイートするためにテキストビューを与えています。

以下の方法を適用して、文字数を140文字に制限しています。

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
   return [[textView text] length] <= 140;
}

このコードは、最初の条件であるバックスペースが機能しないことを除けば、うまく動作しています。 140文字の制限に達したと仮定すると、メソッドは私にfalseを与え、ユーザーはそれ以上の文字を挿入することはできませんが、その後私がいくつかの文字を削除しようとすると、テキストビューは、それが無効になっているように動作する。

そこで質問です。 textview.text またはテキスト表示を再度有効にするにはどうしたらよいでしょうか。

どのように解決するのですか?

のように、代わりに空文字列を探す必要があります。 リンゴの参照 とあるように

<ブロッククオート

ユーザーがDeleteキーを押した場合、その範囲の長さは1であり、空の文字列オブジェクトがその1文字を置き換えます。

実際に行いたいチェックは以下のようなものだと思います。 [[textView text] length] - range.length + text.length > 140 のようなもので、カット&ペーストの操作を考慮したものです。