2012-12-01 38 views
3

我有一個UITextField是第一響應者。我想在進入視圖時顯示鍵盤,但我想這樣做,用戶將無法編輯它,並且光標也會一直隱藏。即使在userInteractionEnabled = NO時顯示UITextField鍵盤firstResponder

當你點擊一個鍵盤字母時,它將被寫入UITextField,但用戶將不能在那裏編輯任何東西,甚至不能複製。

謝謝!

+0

我認爲,與這種方法相比,您的問題必須有更好的解決方案。只是在這裏吐口水,但也許有一個'隱藏',你調用'becomeFirstResponder'的UITextField,然後在它的代理方法'textField:shouldChangeCharactersInRange:replacementString:'你可以把文本添加到'UITextView'或者帶有'userInteractionEnabled = NO'的'UITextField'。 – MaxGabriel

+0

我不明白你的意思。 –

回答

6

好的,根據我的評論,我的解決方案是有一個代理UITextField,它的hidden屬性設置爲YES。我所做的就是將隱藏文本字段添加到視圖中,並在其上調用becomeFirstResponder。用戶不知道這個文本字段是否存在。在文本字段的委託回調中,我將用戶輸入的文本添加到UITextView(儘管您可以將文本添加到任何想要的內容中,例如您的問題中的UITextField)。我關閉了可見文本視圖的userInteractionEnabled。這會產生你想要的效果。

我創建了一個示例項目,我上傳到Github。 (如果您不熟悉它,只需單擊zip按鈕下載它,解壓縮並打開.xcodeproj文件)。 https://github.com/MaxGabriel/HiddenTextField

+0

哇!非常感謝你的解決方案,當然還有代碼本身的人,你在這裏做的真的很棒!謝謝! –

0

編輯答案:試試這個:

1. [txtField becomeFirstResponder]; 
2. txtField.enabled = NO; 
3. when some press on keyboard, then txtField.enabled = YES; 

檢查了這一點:http://www.youtube.com/watch?v=cKV5csbueHA

+0

在'UITextField'類型的對象上找不到屬性'editable',爲什麼? –

+0

Oooops ...錯誤! – iDilip

+0

我編輯了答案,檢查了這一點。 – iDilip

0

我在viewControllerUISearchBar財產。我這樣做:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [self.searchBar becomeFirstResponder]; 
} 

這應該適用於UITextField

至於禁止編輯,使用方法:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{ 
    return NO; 
} 

你應該已經建立你的viewController是的UITextField委託。

+0

沒問題,但這不是我要求的。他已經設置爲第一響應者,但我希望它成爲第一響應者,鍵盤將apeears,留在那裏,但UITextField將被設置爲可編輯=否 –

+0

編輯答案,現在試試:) –

+0

謝謝你,但鍵盤保持隱藏... –

相關問題