Попробуйте:
yourTextField.keyboardType = UIKeyboardTypeNumbersAndPunctuation;
if (([[[UIDevice currentDevice] systemVersion] doubleValue] >= 4.1)) {
yourTextField.keyboardType = UIKeyboardTypeDecimalPad;
}
Это проверка версии iOS, запущенной на устройстве, чтобы определить, достаточно ли она «новая».То есть клавиатура с десятичной кнопкой была доступна в iOS4.1.Таким образом, любая версия iOS на этой или после этой версии имеет ее.
Техника - это (не очень) «тестирование возможностей на основе версии».Существуют и другие подобные методы тестирования возможностей, такие как проверка того, отвечает ли класс определенному селектору, которые хорошо работают в других ситуациях.
Как правило, лучше проверять наличие определенного селектора, который вы хотите использовать.чем проверка номеров версий.Но в случае чего-то вроде константы, проверка версии базовой ОС (на мой взгляд) одинаково хороша.