Если вы не ориентируетесь на очень старые версии iOS (т.е. версии более ранние, чем 3.2), лучший способ сделать это - использовать совершенно другой подход.
Начиная с 3.2, любой UIResponder (который включает в себя все UIViews) может возвращать UIView из своего свойства inputView
, чтобы показать это представление вместо клавиатуры, когда представление становится первым респондентом. Это даже работает для представлений, которые обычно не становятся первым респондентом или вообще не отображают клавиатуру. Все просто:
- Создайте всплывающее окно так же, как и любое другое представление.
- Убедитесь, что ваш виджет возвращает YES от
canBecomeFirstResponder
.
- Убедитесь, что ваш виджет возвращает экземпляр вашего всплывающего представления из
inputView
.
Более подробная информация доступна в документации .
Кроме того, кстати, если вы на iPad, вам, вероятно, следует использовать UIPopoverController для отображения UIPickerView вместо любого из этих методов. Apple может фактически потребовать это , если вы собираетесь получить свое приложение в магазине приложений.