天天看點

淚的教訓_ios7中關于TextField的inputView屬性

基于工作的需要

本人的工作鍵盤需要數字鍵盤以及表情鍵盤。

表情鍵盤的内容偏少,高度不需要和普通鍵盤一緻。

具體兩個鍵盤如下:

淚的教訓_ios7中關于TextField的inputView屬性

一個是表情鍵盤

淚的教訓_ios7中關于TextField的inputView屬性

兩者的高度不一緻,但是這個過程中的設計用了一點點本方法解決掉

在ios6中完全沒有問題,可以正常使用釋出。

等到ios7的時候。總是有個問題:

1。直接輸入數字鍵盤,送出沒有問題。

2。輸入表情鍵盤,直接送出。沒有問題。

3。輸入表情鍵盤,再輸入數字鍵盤,送出就有問題了。

剛開始我一直以為都是記憶體的問題,因為項目使用了非ARC的模式。多方測試結果不是。

最後才想到,當我切換到普通鍵盤的時候,都是使用了 self.inputTextField.inputView=nil;

相信很多人也是用了這方式。

然而這種方式等到釋放記憶體的時候總是到[super  dealloc]的時候報錯。

最後處理的方式就是當要移除該界面的時候。添加一下代碼

UIView* v=[[[UIView alloc]initWithFrame:CGRectZero]autorelease];

    self.inputTextField.inputView=v;

    [self.inputTextField reloadInputViews];

就沒有問題了。這個問題僅僅存在于ios7以上,在ios6包含一下版本,沒有這個問題。希望能幫到大家。