Я сделал это с помощью скрытого текстового поля. Не невероятно элегантно, но работает, в основном на любом событии, которое вы хотите показать клавиатуру для вас, звоните
[myHiddenTextField becomeFirstResponder];
затем контролируйте ввод, используя свойство text текстового поля, зарегистрируйтесь для события, чтобы сообщить, когда что-то было напечатано
[myHiddenTextField addTarget:self action:@selector(processKeyboardInput:) forControlEvents:UIControlEventEditingChanged];