Objective-C & Interface Builder для чайников: как связать клавиатуру? - PullRequest
0 голосов
/ 01 февраля 2011

Итак, я перечитывал другие вопросы здесь и документацию XCode, но я все еще немного сбит с толку.Вот сценарий: у меня есть экран входа для моего приложения, который имеет 3 текстовых поля и 1 кнопку.Каждое текстовое поле должно иметь Return Key в IB: Next, Next, Go.

Теперь, как мне связать эти ключи возврата с реальными действиями, когда поле 1 перемещается к следующему, затем поле 2 перемещаетсяк следующему, и последнее поле 3 вызывает кнопку?

В некоторых ответах на подобные вопросы предлагается использовать метод textFieldShouldReturn, но я все еще не уверен в этом.Почему-то я не могу понять, как он автоматически знает, что делать без какого-либо связывания ...

Ответы [ 2 ]

2 голосов
/ 01 февраля 2011

Что вам нужно сделать, это использовать IBAction для выбора следующего поля при нажатии клавиши возврата.Для этого сначала добавьте такой метод в ваш UIViewController.Убедитесь, что добавили объявление метода в ваш заголовок.

- (IBAction)selectSecondField:(id)sender
{
    //_secondField is the IBOutlet to the second field
    [_secondField becomeFirstResponder];
}

Постройте, а затем перейдите к Интерфейсному Разработчику.Выделите первое текстовое поле и откройте инспектор соединений (⌘2) и перетащите курсор от точки рядом с «Did End On Exit» на контроллер с действием.Появится меню действий, выберите selectSecondField.

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

0 голосов
/ 01 февраля 2011

В каждом текстовом поле есть дескриптор (на панели соединений), называемый "следующим полем" или что-то в этом роде? (Я не могу вспомнить с головы до головы) Но если вы перетащите это в следующее поле, это то, что он знает (вручную). Я думаю, что в общем случае он предполагает использование местоположения X / Y, но когда вам нужно сделать это вручную, просто перетащите этот маркер.

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