2014-01-10 76 views
8

我有一個文本框,它有一個UIInputView輸入附件視圖。當鍵盤動畫時,UIInputView背景是不可見的

當我點擊我的文本字段,鍵盤飛入視圖,我可以看到附件視圖的子視圖,但它沒有可見的背景。 鍵盤動畫完成後,UIInputView的背景會彈出到視圖中。

我能做些什麼來強制UIInputView的背景在鍵盤動畫仍在進行時可見?

這裏是我的代碼:

UIInputView *inputView = [[UIInputView alloc] initWithFrame:CGRectMake(0.0f, 0.0f,     CGRectGetWidth(self.bounds), 44.0f) inputViewStyle:UIInputViewStyleKeyboard]; 

UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem]; 
button.frame = CGRectInset(inputView.bounds, 15.0f, 2.0f); 
[button setTitle:@"Button" forState:UIControlStateNormal]; 
[inputView addSubview:button]; 

UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(0.0f, 0.0f, CGRectGetWidth(self.bounds), 44.0f)]; 
textField.inputAccessoryView = inputView; 
[self addSubview:textField]; 
+0

想在這裏看到答案。這真是令人不安。 –

回答

1

不是一個完整的解決方案,但如果你手動設置UIInputView的背景內-viewDidLoad:方法這種影響可以降到最低。幸運的是,之後不需要刪除它。在出現UIInputView之後,它將擁有真正的鍵盤背景和模糊效果。

UIColor *tmpBackground; //Keyboard have color base on the current device. 
if ([UIDevice isPad] || (UIDevice isPod)]) { //These are my helpers, you have to implement it 
    tmpBackground = [UIColor colorWithRed:207/255.0f green:210/255.0f blue:214/255.0f alpha:1]; 
} else { 
    tmpBackground = [UIColor colorWithRed:216/255.0f green:219/255.0f blue:223/255.0f alpha:1]; 
} 
[textField.inputAccessoryView setBackgroundColor:tmpBackground]; 

P.S.而且我知道,以這種愚蠢的方式定義顏色並不是一個完美的解決方案。