Создать контроллер представления и XIB. Xib должен иметь 1-9,0 и удалять кнопки, связанные с IBOutlets в вашем контроллере. Сохраните и сохраните строку возвращаемого значения в качестве свойства. Вы можете добавить десятичные дроби и т. Д., Если хотите. В заголовке сохраните закрытие блока издания со свойством (или, альтернативно, создайте делегат или используйте уведомление).
@property (copy) void(^valueChangedBlock)(NSString* string);
При касании каждая кнопка отправляет событие такому методу:
- (IBAction) pressKey:(id)sender
{
NSString *toAppend;
// Instead of this switch you can store the values in a dictionary mapped by sender.
switch(sender)
{
case oneButton: toAppend=@"1"; break;
case twoButton: toAppend=@"2"; break;
...
}
returnValue = [returnValue appendString:toAppend];
valueChanged(returnValue);
}
Очевидно, что ключ удаления должен удалять символ из конца строки вместо добавления. Помимо создания контроллера и добавления этого представления в качестве inputView, вы должны добавить valueChangedBlock и установить его для обновления текстового поля. Возможно, вы захотите поместить прозрачную настраиваемую кнопку поверх набора текстовых полей, чтобы поле отвечало первым, чтобы оно не выглядело так, как будто пользователь может редактировать в любой точке строки.