Хотите обнаружить нажатие кнопки вкладки в приложении ipad с беспроводной клавиатуры - PullRequest
5 голосов
/ 18 июля 2011

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

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if(textField == textName){      
        if ([string isEqualToString:@"\t"]) {
            [textName resignFirstResponder];
              [textRno becomeFirstResponder];   
        }
    }
    return YES;
}

Есть ли другой способ для этого.

Ответы [ 7 ]

4 голосов
/ 30 июля 2012

Похоже, вы хотите перейти к следующему виду ввода (например, текстовое поле) на вкладке. Система делает это автоматически!

Вы можете управлять «порядком табуляции», используя теги представления и код в этом ответе: https://stackoverflow.com/a/1351090/550177

Также посмотрите на эти связанные вопросы:

3 голосов
/ 18 июля 2011

Делегат TextField никогда не вызывается для кнопки вкладки на клавиатуре.

1 голос
/ 03 августа 2012

вы можете поймать экранирующий символ \t при нажатии на внешнюю клавиатуру:

- alt + tabulator или

-ctrl + tabulator.

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

0 голосов
/ 12 апреля 2013

Так я переключаюсь на следующего респондента с помощью клавиши табуляции:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
    if (self.currentTextField != nil && self.currentTextField == textField)
        [self switchToNextResponder];

    self.currentTextField = textField;
    return YES; 
}
0 голосов
/ 13 ноября 2012

Я удивлен, что никто другой, похоже, не решил эту проблему на iOS.

Я разработал решение, которое обрабатывает и Tab, и Shift + Tab, чтобы перемещаться вперед и назад в любое поле на iOS и не использует частные API.

Я писал об этом здесь: http://weaklyreferenced.wordpress.com/2012/11/13/responding-to-the-tab-and-shift-tab-keys-on-ios-5-ios-6-with-an-external-keyboard/

0 голосов
/ 04 августа 2012

используйте подход UIEvent на здесь

0 голосов
/ 18 июля 2011

Может потребоваться распечатать полученный ключ вместо проверки \ t, чтобы убедиться, что ваша процедура обработки клавиатуры работает, и она также скажет вам, что искать.

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