drawTextInRect на UITextField, не названном

Я пытаюсь реализовать ответ на это ТАК вопрос. Проблема: -[drawTextInRect] по-видимому, не назван, и установка тени в -[drawRect] не делает текст UITextField затененным.

Другая странная вещь состоит в том что даже если мои реализации подкласса -[drawTextInRect] и -[drawRect] абсолютно пусты (даже вызов к супер), текст текстового поля оттянут.

9
задан Community 23 May 2017 в 12:02
поделиться

3 ответа

Это ошибка в документации API UITextField . В документации указано, что переопределение drawTextInRect: можно использовать для настройки поведения. Это не тот случай.

Фактически, drawTextInRect: никогда не будет вызываться в UITextField ( drawPlaceholderInRect: , кстати, не будет вызываться).

См. Также http://discussions.apple.com/thread.jspa?threadID=1727596 .

Однако переопределение метода на UILabel работает.

12
ответ дан 4 December 2019 в 11:42
поделиться

Если не вызвать супер, компилятор может удалить метод при оптимизации кода. Это фактически означает, что вызывается реализация UILabel.


Update: Если вы используете перо для создания текстового поля, убедитесь, что вы установили класс текстового поля в пере в свой пользовательский подкласс, иначе ваш пользовательский код не будет вызван.

-1
ответ дан 4 December 2019 в 11:42
поделиться

UITextField не отвечает на сообщение - drawTextInRect:. Код на странице, на которую вы ссылаетесь, подклассифицирует UILabel, а не UITextField, поэтому он у вас не сработал.

0
ответ дан 4 December 2019 в 11:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: