У UITextField показывать клавиатуру (становиться откликом), когда отображается UIView - PullRequest
1 голос
/ 09 декабря 2010

У меня есть UIViewController с UITableView. Первая строка UITableView - это ячейка, в которой есть UITextField. Я хотел бы немного улучшить свой интерфейс, показывая клавиатуру при отображении вида. Я пытался поместить метод BecomeFirstResponder в различные события, но до сих пор не заставил это работать.

Может ли кто-нибудь дать подсказки о том, как представить клавиатуру при представлении представления через PushViewController?

Спасибо.

Ответы [ 4 ]

1 голос
/ 15 декабря 2010

Прежде всего, всегда используйте производный класс UITableViewController вместо UIViewController при работе с UITableView.Это поможет вам изменить размер представления и обеспечит видимость полей при отображении клавиатуры.

Вы можете отобразить клавиатуру для первого поля, вызвав BecomeFirstResponder в событии ViewDidAppear.Пример:

public class YourTableViewController : UITableViewController
{
    private UITableView _yourTableView;
    YourUITableViewSourceDerivedClass _yourSource;

    public override void ViewDidLoad()
    {
        _yourTableView = new UITableView(View.Bounds, UITableViewStyle.Plain);
        _yourTableView.AutoresizingMask = UIViewAutoresizing.FlexibleHeight;
        _yourSource = new YourUITableViewSourceDerivedClass();
        _yourTableView.Source = _yourSource;
        TableView = _yourTableView;
    }

    public override void ViewDidAppear(bool animated)
    {
        // Well, of course you call a method in your source to do this, but this is the idea:
        _yourSource.textFieldOnFirstRow.BecomeFirstResponder();
    }
}
1 голос
/ 10 декабря 2010

В вашем подклассе UITableViewSource или UITableViewDelegate попробуйте переопределить метод WillDisplay, например:

public override void WillDisplay (UITableView tableView, UITableViewCell cell, NSIndexPath indexPath)
{
  if(indexPath.Row == theRowIndexOfTheCellWithYourTextField){
    yourTextField.BecomeFirstResponder();
  }
}

Он должен работать (обратите внимание, что вы, вероятно, захотите добавить некоторый код, чтобы убедиться, что он выполняется только один раз)

0 голосов
/ 09 декабря 2010

Вы можете попробовать настроить уведомление о том, когда ваш вид ячейки загружен или появился. После этого вы можете вызывать в поле nowFirstResponder после срабатывания уведомления.

0 голосов
/ 09 декабря 2010

в вашей viewdidload, поместите это:

[yourTextField becomeFirstResponder];

Я вообще не уверен, что это работает: S

, пожалуйста, скажите, если это так или нет :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...