ITextView如何關閉鍵盤

UITextField可以響應鍵盤上的完成按鈕,關閉鍵盤,而UITextView不一樣,它的return按鈕或者Done按鈕執行的是換行功能,不能達到關閉鍵盤的目的。解決方法有兩個:一個是通過捕捉touch 
End事件,當用戶點擊空白區域時關閉UITextView打開的鍵盤;一個是增加一個帶有完成按鈕的UIToolbar(這個UIToolbar當鍵盤彈出的時候總是顯示在鍵盤的上方,很完美的貼在一起,鍵盤收起,它也會隨着收起)。當然,將這兩個方法都集成進來運用也是可以的。 
    
下面提供第二種方法的詳細代碼: 
    UIToolbar * topView = [[UIToolbar alloc] 
initWithFrame:CGRectMake(0, 0, 320, 30)];  
    [topView 
setBarStyle:UIBarStyleDefault]; 
    
    UIBarButtonItem * btnSpace = 
[[UIBarButtonItem alloc] 
initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self 
action:nil]; 
    UIBarButtonItem * doneButton = [[UIBarButtonItem alloc] 
initWithTitle:@"完成" style:UIBarButtonItemStyleDone target:self 
action:@selector(dismissKeyBoard)];    
    NSArray * buttonsArray = [NSArray 
arrayWithObjects:btnSpace, doneButton, nil]; 
    [btnSpace release]; 
    
[doneButton release]; 
    
    [topView setItems:buttonsArray]; 
    
[m_myUITextView setInputAccessoryView:topView]; 
    
注:1.dismissKeyBoard是自定義的收起鍵盤的方法,可自定義其中的內容,比如執行[m_myUITextView 
resignFirstResponder]; 
           2.最後一行代碼setInputAccessoryView函數的調用是很關鍵的一句。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章