2012-06-27 63 views
0

我有一個UIToolbar的實例,裏面包含UITextField。我想爲它包含的UITextField在附件視圖中設置工具欄。故障設置UIKeyboard附件視圖

我做到這一點的方法如下:

[myTextView setInputAccessoryView:myToolbar]; 

當我編譯和運行代碼,當我按在文本字段整個鍵盤消失。我特別確定我正在設置inputAccessoryView而不是inputView。似乎整個輸入視圖都被取代了,沒有明確的指示。

有沒有人知道一種方法來解決這個問題?

回答

5

它通常並不好把一個文本字段中輸入附件視圖......如果你把工具欄沿視圖的底部,然後用UIKeyboardWillChangeFrameNotification使用鍵盤移動工具欄什麼是更好的是.. 。

在您的viewDidLoad:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChange:) name:UIKeyboardWillChangeFrameNotification object:nil]; 
在您的視圖控制器的代碼

而且地方:

-(void) keyboardWillChange:(NSNotification*)notify { 

    CGRect endFrame; 
    float duration = [[[notify userInfo] valueForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue]; 
    [[[notify userInfo] valueForKey:UIKeyboardFrameEndUserInfoKey] getValue:&endFrame]; 
    endFrame = [self.view convertRect:endFrame fromView:nil]; 
    float y = (endFrame.origin.y > self.view.bounds.size.height ? self.view.bounds.size.height-44 : endFrame.origin.y-44); 

    [UIView animateWithDuration:duration animations:^{ 
     toolbar.frame = CGRectMake(0, y, self.view.bounds.size.width, 44); 
    }]; 

} 
+0

這似乎像什麼內置的消息應用程序與做文本輸入工具欄。 – Dima

+0

是的,我認爲是的,它也是一個簡單的移動全屏滾動視圖,文本視圖或Web視圖的方法,這樣即使鍵盤覆蓋它也可以滾動到結尾... – jjv360

+0

在這種情況下,是endFrame在那裏確保我將工具欄向正確的方向移動? (當鍵盤在消失時上下移動時)? –