我有一個UITextField是第一響應者。我想在進入視圖時顯示鍵盤,但我想這樣做,用戶將無法編輯它,並且光標也會一直隱藏。即使在userInteractionEnabled = NO時顯示UITextField鍵盤firstResponder
當你點擊一個鍵盤字母時,它將被寫入UITextField,但用戶將不能在那裏編輯任何東西,甚至不能複製。
謝謝!
我有一個UITextField是第一響應者。我想在進入視圖時顯示鍵盤,但我想這樣做,用戶將無法編輯它,並且光標也會一直隱藏。即使在userInteractionEnabled = NO時顯示UITextField鍵盤firstResponder
當你點擊一個鍵盤字母時,它將被寫入UITextField,但用戶將不能在那裏編輯任何東西,甚至不能複製。
謝謝!
好的,根據我的評論,我的解決方案是有一個代理UITextField
,它的hidden
屬性設置爲YES
。我所做的就是將隱藏文本字段添加到視圖中,並在其上調用becomeFirstResponder
。用戶不知道這個文本字段是否存在。在文本字段的委託回調中,我將用戶輸入的文本添加到UITextView
(儘管您可以將文本添加到任何想要的內容中,例如您的問題中的UITextField
)。我關閉了可見文本視圖的userInteractionEnabled
。這會產生你想要的效果。
我創建了一個示例項目,我上傳到Github。 (如果您不熟悉它,只需單擊zip按鈕下載它,解壓縮並打開.xcodeproj文件)。 https://github.com/MaxGabriel/HiddenTextField
哇!非常感謝你的解決方案,當然還有代碼本身的人,你在這裏做的真的很棒!謝謝! –
編輯答案:試試這個:
1. [txtField becomeFirstResponder];
2. txtField.enabled = NO;
3. when some press on keyboard, then txtField.enabled = YES;
我在viewController
了UISearchBar
財產。我這樣做:
- (void)viewWillAppear:(BOOL)animated
{
[self.searchBar becomeFirstResponder];
}
這應該適用於UITextField
。
至於禁止編輯,使用方法:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
return NO;
}
你應該已經建立你的viewController是的UITextField
委託。
沒問題,但這不是我要求的。他已經設置爲第一響應者,但我希望它成爲第一響應者,鍵盤將apeears,留在那裏,但UITextField將被設置爲可編輯=否 –
編輯答案,現在試試:) –
謝謝你,但鍵盤保持隱藏... –
我認爲,與這種方法相比,您的問題必須有更好的解決方案。只是在這裏吐口水,但也許有一個'隱藏',你調用'becomeFirstResponder'的UITextField,然後在它的代理方法'textField:shouldChangeCharactersInRange:replacementString:'你可以把文本添加到'UITextView'或者帶有'userInteractionEnabled = NO'的'UITextField'。 – MaxGabriel
我不明白你的意思。 –