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函數的調用是很關鍵的一句。