我正在編寫一個具有允許編輯的UITextView的應用程序。當用戶第一次觸摸UITextView時,出現鍵盤,並且當用戶再次觸摸UITextView時,我想撤回該鍵盤。我在文本框中輸入了一些數據,鍵盤仍然顯示在屏幕上,點擊UITextView,這會導致鍵盤縮回。如何在鍵盤已經啓動時觸摸UITextView來縮回鍵盤?
有什麼辦法可以實現這個嗎?
(我知道提供了一個完成的按鈕,這樣做的,但我希望通過自己的UITextView對竊聽實現這一目標)
我正在編寫一個具有允許編輯的UITextView的應用程序。當用戶第一次觸摸UITextView時,出現鍵盤,並且當用戶再次觸摸UITextView時,我想撤回該鍵盤。我在文本框中輸入了一些數據,鍵盤仍然顯示在屏幕上,點擊UITextView,這會導致鍵盤縮回。如何在鍵盤已經啓動時觸摸UITextView來縮回鍵盤?
有什麼辦法可以實現這個嗎?
(我知道提供了一個完成的按鈕,這樣做的,但我希望通過自己的UITextView對竊聽實現這一目標)
另外,我會敦促你不要在iPhone上使用切換狀態元素。在現實世界的使用中很容易雙擊。這就是爲什麼Apple應用程序都使用鍵盤上的「返回」鍵或完成按鈕。
在您考慮的界面中,用戶會發現自己關閉,然後意外地重新開啓鍵盤約10%或更多時間。它會讓你的應用感覺繁瑣和片狀。
你應該叫resignFirstResponder
爲UITextView
。比方說,你有文本視圖的IBOutlet
:
@property (nonatomic, retain) IBOutlet UITextView *comment;
然後[comment resignFirstResponder];
可以從touchesBegan
等進行調用。
你在找什麼是一個很大的透明uibutton「overlapButton」,它始終停留在uitextview之上。
當textview出現時,您將該按鈕設置爲隱藏,以便您可以自由點擊textview。
[overlapButton setHidden:YES];
當敲擊的TextView,鍵盤上來,你的TextView代表裏面,下面的方法被調用:
-(BOOL)textViewShouldBeginEditing:(UITextView *)textView{
[overlapButton setHidden:NO];
}
在這裏,你需要設置可見「overlapButton」,以便當鍵盤彈起,您可以觸摸現在與textview重疊的按鈕。在按鈕操作,就可以隱藏鍵盤:
-(IBAction) overlapButtonTapped{
[myTextView resignFirstResponder];
}
辭職第一響應之後,下面的方法將被調用:
-(BOOL)textViewShouldEndEditing:(UITextView *)textView{
[overlapButton setHidden:YES];
}
相應地設置隱藏屬性按鈕後(如上面),你有一個「清晰」的文本視圖,你可以再次點擊以顯示鍵盤..等..等。
乾杯。
但以這種方式是不可能寫在uitextview,是嗎? – Sefran2 2011-06-10 17:37:26
我同意你的意見TechZen。我見過這種事!我也不會建議這個!如果編輯/複製/粘貼手勢不是不可能的話,它也會使編輯變得非常困難。另一方面,如果這個男人仍然很想這麼做..:P我在其他文章中提供的代碼是一種享受!乾杯。
雖然我同意,但我不明白這是如何回答*實際*問題(以「如何」爲準)。 – jensgram 2010-01-28 09:09:27
好吧,我以爲你已經回答了「如何」,而我是一個界面納粹。我認爲有時候,「你不想那麼做」是對「我該怎麼做」的一個更好的回答。 – TechZen 2010-01-28 13:03:25
好的:)我仍然同意你從一個廣義的觀點(和*你*沒有選擇接受的答案),但在SO是一個編程問答網站的精神我沒有找到「你不想要做到這一點「是足夠的。 – jensgram 2010-01-28 14:13:57