Как я могу получить inputView пользовательского текстового представления?

Я использую EGOTextView для отображения некоторой атрибутивной строки, такой как эмоции (не смайлики), потому что системные UITextView или UITextField не могут отображать изображение с текстом.

Но я не могу получить inputView с помощью EGOTextView. Как я могу его получить? Спасибо.


person ZhouQi    schedule 27.06.2013    source источник


Ответы (2)


Свойство inputView определено как доступное только для чтения в UIResponder, который является суперклассом EGOTextView. Итак, вам просто нужен способ заставить ваш экземпляр EGOTextView возвращать что-то ненулевое из inputView.

Создайте подкласс EGOTextView, который объявляет и реализует readwrite версию свойства inputView, и используйте ваш подкласс.

person rob mayoff    schedule 27.06.2013
comment
Я думаю, что inputView должен быть представлен с клавиатуры, но как я могу получить экземпляр клавиатуры? - person ZhouQi; 28.06.2013
comment
Вы не можете получить экземпляр клавиатуры. Вы можете использовать inputView для отображения чего-либо вместо клавиатуры. Если вам просто нужна клавиатура, то inputView должен возвращать nil (по умолчанию). - person rob mayoff; 28.06.2013
comment
Да, inputView равен нулю, когда отображается клавиатура. Спасибо! - person ZhouQi; 28.06.2013

Если бы вы проверили реализацию EGOTextView, вы бы обнаружили, что этот класс не является подклассом UITextView1 orUITextFieldso it doesn't haveinputView`.

person danypata    schedule 27.06.2013
comment
UIResponder объявляет inputView. Он просто не предоставляет установщика для его изменения. Любой подкласс UIResponder (что означает любое представление) может переопределить inputView, чтобы вернуть что-то отличное от нуля. - person rob mayoff; 28.06.2013
comment
Да, он не является подклассом UITextView или UITextField, но когда EGOTextView становитсяFirstResponder действительно имеет всплывающую клавиатуру, могу ли я установить представление в inputView? - person ZhouQi; 28.06.2013