Haj*_*kri 9 crash uitextview ios inputview ios7
我相信我在iOS 7中遇到了一个错误.当UITextView包含在模态视图中时,将其inputview属性从自定义视图更改为nil(为了恢复系统键盘)将导致应用程序崩溃在模态视图被驳回后.
此崩溃仅发生在iOS 7下.以前的iOS版本没有出现此问题.
我写了一个小样本应用来演示这个问题.编译启动应用程序并执行以下操作:
一旦ViewController被解除,应用程序立即崩溃.崩溃日志有时(但不总是)指的是发送到对象的无法识别的选择器.每次重现崩溃时,对象的类型都不同.
还有其他人遇到过这种错误吗?
小智 5
对不起,我不太了解你.这是一个不会导致崩溃的解决方案.
UIView* emptyView;
-(IBAction)setToEmpty:(id)sender {
[self.textView resignFirstResponder];
if (emptyView == nil)
emptyView = [[UIView alloc] initWithFrame:CGRectZero];
self.textView.inputView = emptyView;
[self.textView becomeFirstResponder];
// emptyView = nil; // If you comment out the this line, the app will crash
}
Run Code Online (Sandbox Code Playgroud)
如果启用zombie对象,则可以看到以下错误:
CrashTest [16706:a0b] * - [UIView _overrideInputViewNextResponderWithResponder:]:发送到解除分配的实例0x8e88680的消息
ios7中的ARC以不同的方式工作.显然你不能在关闭mainView之前释放对象,即firstResponder.
小智 1
@implementation NoKbTextField
static UIView *customInput;
- (UIView *) inputView {
if (customInput == nil) {
customInput = [[UIView alloc] init];
customInput.backgroundColor = [UIColor clearColor];
}
return customInput;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2745 次 |
| 最近记录: |