在UIAlertView替代UITextField?
我想要一个用户的快速input。 我知道我可以把一个UITextField放在UIAlertView中,但是这是一个“黑客”。 有一个官方的/另一种方式来做到这一点?
令人惊讶的是,这种典型场景没有控制权。
谢谢
更新:尝试EGOTextFieldAlertView,但这里的结果:
和代码:
EGOTextFieldAlertView *alert = [[EGOTextFieldAlertView alloc] initWithTitle:@"Enter the group name" message:nil delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil]; [alert addTextFieldWithLabel:@"Name"]; [alert show]; [alert release];
如果你愿意要求iOS 5,那么它不再是黑客。 UIAlertView现在有一个alertViewStyle
属性,当它被设置为UIAlertViewStylePlainTextInput
,可以通过-[UIAlertView textFieldAtIndex:]
来获取警报中的单个文本字段。
如果你仍然需要4.3或更早的版本,那么不,没有官方的方法来做到这一点,它真的是一个很大的“黑客”,这与称为SPI。
查看EGOTextFieldAlertView 。
如果你正在寻找一种替代方式,那么你可以创build自定义UIView这看起来像警报视图,并添加为子视图,使animation像警报视图。
我有完全相同的问题,并已修复它,似乎在iOS 4.3和5.0的工作。 看来还有其他一些类进一步下移了offsetY值的计算。 而不是更新所有非UIControl类的offsetY我改变它只更新它的UILabel类。
这是我在layoutSubviews中的EGOTextFieldAlertView.m中的修复
改变这一行: if(![view isKindOfClass:[UIControl class]]) {
到: if([view isKindOfClass:[UILabel class]]) {