2012-04-04 3 views
0

У меня есть UITextField, где исходный текст - «username.mysite.com». Установлен цвет по умолчанию (черный).Два разных цвета внутри UITextField

Я хотел бы иметь «имя пользователя» с другим цветом, как серый. Является ли это возможным?

Пользователь может щелкнуть по кнопке «Очистить», чем заполнитель «url».

ответ

2

Нельзя напрямую использовать UITextField. Ваши основные два варианта:

  1. Используйте UIWebView маскировку в виде текстового поля. Это легко, но это кувалда и может привести к штрафам за исполнение в определенных случаях использования.

  2. Используйте Core Text для отображения правильно настроенной NSAttributedString. Хотя ссылка, похоже, для Mac OS, Core Text существует и на iOS. Структура очень мощная, но имеет крутую кривую обучения и не поддерживает редактируемый текст из коробки. Существуют, однако, различные библиотеки с открытым исходным кодом, которые могут помочь начать работу (например, DTCoreText. OHAttributedLabel).

+0

Спасибо, я буду иметь взгляд. –

0

Нет, это невозможно с настройками по умолчанию.

0

вы можете изменить цвет заполнителя, получив доступ к следующей частной собственности, он покажет вам предупреждение, но он будет работать очень хорошо.

[aTextField setValue:[UIColor yellowColor] 
      forKeyPath:@"_placeholderLabel.textColor"]; 

Существует еще один способ также присутствуют для этого, вы можете переопределить drawPlaceholderInRect метод с пользовательской реализацией.

+0

Hi RIP, я хочу изменить цвет текста собственности, а не место владельца. И цвет только для части «имя пользователя» не весь текст. –

+1

Я думаю, что это невозможно напрямую, вы можете проверить следующую тему - http://stackoverflow.com/questions/2452356/is-it-possible-to-set-multiple-color-in-uilabel – rishi