UITextView и типы данных детектора - как узнать, что внешний контроллер модального вида открывается / закрывается, когда ссылка долго нажата? - PullRequest
1 голос
/ 22 сентября 2011

в моей конкретной ситуации у меня есть ссылка электронной почты в UITextView, поэтому, когда пользователь долго нажимает на эту ссылку, открывается лист действий, предоставленный iOS, где вы можете, например, создать новый контакт с этим адресом электронной почты и так далее. Это действие открывает другой внешний (предоставляемый iOS) контроллер модального представления, аналогичный приложению Contacts, но он открывается в нашем приложении поверх текущего контроллера представления.

Я хотел бы знать, когда мой контроллер вида покрывается этим внешним модальным контроллером вида и когда он снова становится видимым, потому что он нужен мне для управления открытием / скрытием клавиатуры (и еще немного). К сожалению, в этой ситуации я не обнаружил никаких событий, ни один метод делегата UITextView, viewWill/DidAppear/Disappear также не вызывался. Я даже протестировал использование моего собственного UIApplication подкласса и переопределения метода -(BOOL)openURL:(NSURL *)url, но он вызывается только при нажатии URL (например: короткое нажатие на ссылку http, чтобы открыть его в Safari, короткое нажатие на номер телефона для вызова и т. Д. .), поэтому он не вызывается в моей ситуации (создание нового контакта с адресом электронной почты).

Пока у меня нет решения, я буду очень признателен за любые идеи.

1 Ответ

0 голосов
/ 22 сентября 2011

Ваш контроллер представления должен получать viewWillDisappear: и viewDidDisappear: и их аналоги.Если вы получили это вскоре после касания в текстовом представлении, то вполне логично предположить, что пользователь запустил системный контроллер модального представления.

...