2014-01-24 68 views
1

默認情況下,當點擊UITextField時,iOS將顯示默認鍵盤。有沒有可能繞過這個?我希望在textField上點擊模態顯示自定義視圖控制器,並能夠通過此控制器編輯textField。顯示用於編輯UITextField的模態自定義鍵盤視圖控制器

有沒有推薦的方法?

+1

查看UITextFieldDelegate ..我認爲當字段被點擊時,「textFieldShouldBeginEditing」被調用...然後您可以立即調用'[textField resignFirstResponder]'(使用選項禁用動畫,以便它不會向上滑動然後顯示你的自定義鍵盤UIView(添加子視圖)...或者用UIViewController進行模態操作(如果你需要的話)?不要忘記將添加到你的.h後的textField.delegate = self ! –

+0

@AlbertRenshaw我將探索這條道路。謝謝 – tiguero

+0

@tiguero:它的運氣還沒有呢? – footyapps27

回答

1

好的嘗試了,你問的具體要求: -

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    [textField resignFirstResponder]; 

    POCModalViewController *objPOCModalViewController = [[POCModalViewController alloc]init]; 
    [self presentViewController:objPOCModalViewController animated:YES completion:nil]; 

return NO; 
} 

哪裏POCModalViewController是你想呈現控制器。

+0

有可能關閉鍵盤並讓textField成爲第一個響應奧德? – tiguero

+0

鍵盤根本不會顯示! 你想顯示鍵盤嗎? – footyapps27

+0

我不想顯示默認的鍵盤;我想觸發我的模態視圖控制器的顯示,而不是保留textField作爲響應者鏈中的第一響應者 – tiguero

2

當用戶單擊UItextField時,以下wil將重新輸入鍵盤作爲輸入視圖。

self.TextField.inputView = "your view "; 
+0

這不是我的想法:我想在開始編輯文本字段時觸發一個模態視圖控制器 – tiguero

0

我想後的解決方案,我終於實現,這是最接近Footyapps27解決方案:

  1. 我已經提出,將呈現模態控制器,控制器(它將包含內部多個自定義鍵盤視圖)作爲我的控制器視圖中包含的任何UITextField對象的uitextfield委託。

  2. 我現在可以接收通過- (BOOL)textFieldShouldBeginEditing:(TWValueInput *)textField方法的任何通知時,文本框開始進行編輯:

在該委託方法我有下面的代碼片斷:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField { 

      MyCustomKeyboardVC* vc = [[UIStoryboard storyboardWithName:@"main" bundle:nil] instantiateViewControllerWithIdentifier:@"customKeyboardController"]; 
      vc.delegate = self; 


      self.modalPresentationStyle = UIModalPresentationCurrentContext; 

      [self presentViewController:vc animated:NO completion:nil]; 

      return NO; 
    } 

返回NO在該方法內將阻止顯示默認鍵盤。實際上並不需要在文本框中調用resignFirstResponder

我應該指出,蘋果公司推薦的顯示自定義鍵盤的方法是提供一個自定義視圖,以提供像Divya提到的文本字段inputView屬性。由於我想管理多個鍵盤視圖條目,因此通過上面提到的委託方法顯示自定義鍵盤控制器會更快。

相關問題