Ответ 1
У меня есть UIViewController
, где я слушаю UITextFieldDelegate textFieldShouldBeginEditing
и имею специальное действие только для одного из моих текстовых полей. Поэтому, когда вы нажимаете Tab на клавиатуре bluetooth, вы вызываете особый случай.
Сегодня я наконец нашел asolution:
Я регистрирую keyCommand для ключа Tab, а затем использую категорию в UIResponder, чтобы найти firstResponder (текущий textField), а затем активировать возврат через метод делегата.
Сначала вам понадобится эта категория, чтобы получить firstResponder: fooobar.com/info/17897/...
Затем просто зарегистрируйте keyCommand и получите текущий firstResponder.
- (void)viewDidLoad
{
[super viewDidLoad];
[self addKeyCommand:[UIKeyCommand keyCommandWithInput:@"\t" modifierFlags:0 action:@selector(tabKeyPressed:)]];
}
- (void)tabKeyPressed:(UIKeyCommand *)sender
{
id firstResponder = [UIResponder currentFirstResponder];
if ([firstResponder isKindOfClass:[UITextField class]])
{
UITextField *textField = (UITextField *)firstResponder;
// Call the delegate method or whatever you need
[self textFieldShouldReturn:textField];
}
}