我可以使用UIKeyboardType.DecimalPad(在MonoTouch中)并仍保留iOS 3.x兼容性吗?

问题描述:

Apple在iOS 4.1中引入了一种新的“十进制小键盘”键盘类型(我认为)。我想在我的应用程序中使用它,但我也希望应用程序兼容3.x。我可以使用UIKeyboardType.DecimalPad(在MonoTouch中)并仍保留iOS 3.x兼容性吗?

我认为这是不可能的,但是,当我的应用程序设置为支持“最低操作系统版本:3.0”时,它将使用此常量进行编译。

我没有3.x设备来处理,并且似乎无法强制模拟器在3.x下运行我的应用程序,所以我对发生的事情感到困惑。它会在3.x设备上崩溃吗?如果是这样,为什么在编译器支持3.0时编译?

我知道有些方法可以在iOS 3.x中的DecimalPad键盘中进行模拟,但在这个版本问题中我特别感兴趣。

更新

我的测试表明,iOS的3.x的地图“无效”的键盘类型为默认键盘。

在3.x设备上运行您的应用程序将导致崩溃。它会编译,因为您的SDK更新。可悲的是,你不能将模拟器更改为任何版本,例如我只能测试3.2,4.1和4.2。保留老版本的XCode和iPhone SDK是一个好主意(可以并排安装)。

当然,您仍然可以在您的应用中使用新的十进制小键盘,只需将其放入一个检查iOS版本的条件中,从而与3.x保持兼容(请参阅关于iOS版本检查的How to check iOS version?)。

在模拟器中,我相信你可以通过更改硬件 - >版本设置来针对不同版本的SDK运行。

您的应用程序编译是因为您安装了新版本的SDK(4.1+)。但是,在iOS 4.1之前的设备上安装可能会导致运行时问题。