我现在突然遇到一些UITextFields,因为我正在iOS 5设备上进行测试,即使我在iOS 5 SDK中构建了应用程序并且已经让错误发布了。
我有一个允许输入的文本字段,当你按下“锁定”按钮时,它会调用:
textField.enabled = NO;
textField.borderStyle = UITextBorderStyleNone;
字段“隐藏”但仍然像标签一样 - 应用程序的重要功能。
然后再次按下“锁定”按钮,它会调用:
textField.enabled = YES;
textField.borderStyle = UITextBorderStyleRoundedRect;
这在4.2 / 4.3中非常有效,但在iOS 5中,唯一出现的是文本区域的斜面轮廓,没有白色背景颜色。
设置.backgroundColor在iOS 5上修复它,但在4.2 / 4.3上形成一个丑陋的白色方块。
我没有看到API差异文档中的这些变化,我在这里缺少什么? 提前谢谢..
答案 0 :(得分:2)
如果您对白色背景感觉不错,我会将此注释修复为指定背景颜色并将不透明属性设置为NO的行
//[myTextField setBackgroundColor:[UIColor whiteColor]];
[myTextField setOpaque:NO];
这解决了iOS 4.3和iOS 5.0的问题
-Alex
答案 1 :(得分:0)
userInteractionEnabled
是更一般的UIView
类的属性,因此可能不会像UIControl
的子类那样表现,例如UITextField
。相反,您应该将enabled
属性设置为NO
以暂时禁用控件,在UITextField
的情况下,该控件将完全按照您的要求执行。
答案 2 :(得分:0)
可能的解决方法是将alpha
设置为0.00001
。这为您提供了有效隐藏的标签,这些标签仍然可以响应控制事件。
答案 3 :(得分:0)
我遇到了类似的问题,UITextBorderStyleNone在iOS 4.3中工作正常,但在iOS 5上停止工作。我认为这是Apple的一个错误,因为它在设备和模拟器上都不起作用。我认为你最好的方法是根据需要在标签和文本字段之间切换,就像darvids0n建议直到Apple解决了这个bug。