【发布时间】:2011-10-13 19:57:34
【问题描述】:
现在我在 iOS 5 设备上测试时突然遇到一些 UITextFields 的问题,即使我在 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 差异文档中没有看到任何关于这些更改的信息,我在这里遗漏了什么? 提前谢谢..
【问题讨论】:
-
您是否为您的应用启用了 ARC?您似乎正在尝试访问已释放的对象。
-
是的 ARC 已开启,但这是我第一次遇到这个问题。我尝试重新排序东西并将其放在有效的属性前面,但没有任何区别
-
我遇到了完全相同的问题!我刚刚创建了一个小项目来隔离该问题而无需更改启用。我意识到这是一个释放问题,但不明白为什么。使用 NSZombieEnabled 我检测到一个僵尸。奇怪的是,它只发生在从
UITextBorderStyleRoundedRect切换到UITextBorderStyleNone时。如果在 Storyboard 中将初始边框样式设置为 None,则反向不会崩溃。而是将初始值设置为 RoundedRect 应用程序崩溃。似乎 TextField 以某种方式被释放了。 -
@REDMX 有这方面的消息吗?我有一个问题:您使用的是哪个版本的 XCode?您是否也在使用 SnowLeopard 版本(内部版本:4C199)?我在想这是否可能是一个原因,因为它不完全支持 ARC。
标签: ios uitextfield ios5