Ваш первый «возврат» - тот, который происходит всегда, потому что здесь вы безоговорочно вызываете «возврат».
Я думаю, что вы хотели написать это:
return bT || myTextField.text.length < MAX_LENGTH || range.length > 0;
По сути, замените ваши «return bT» и «if» на приведенные выше.
В основном это означает, что вы возвращаете YES в следующих случаях:
- В ДА
- или длина текста в текстовом поле меньше, чем MAX_LENGTH
- или длина диапазона положительна
во всех остальных случаях вы возвращаете НЕТ.