台灣最大程式設計社群網站
線上人數
1274
 
會員總數:239560
討論主題:185843
歡迎您免費加入會員
討論區列表 >> 專欄文章 >> [Swift 3]如何當你開始編輯UITexxField時,點擊輸入框以外的地方結束編輯
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[Swift 3]如何當你開始編輯UITexxField時,點擊輸入框以外的地方結束編輯
價值 : 0 QP  點閱數:292 回應數:1

樓主

可樂快跑
中級專家
2714 23
4238 772
發送站內信

很多剛開始設計ios的人一定會遇到這樣的問題。
就是怎麼關掉惱人的輸入法。
這個其實網路上就有教,也就是呼叫endEditing()這個函式就行了。
但是如果你把這個動作直接用全域偵測,很可能就會發生全域干擾點擊的行為。

是故,正確的處理方式應該是這樣:
點擊輸入框進入→開啟全域偵測停止編輯的行為→當全域畫面被點擊時→關閉輸入框並取消全域偵測

以下是sample code提供參考,這個方法能很有效的畢免掉錯誤的全域偵測。
看過很多資料就只有教你進行全域偵測行為卻沒講何時才應該要開關這個功能

以下是假設你的輸入框元件叫做textField
首先,在屬性設置的地方加上這個屬性


再來在viewDidLoad()輸入以下code


最後,實作二個必要的功能
註:為什麼endEditing()要這麼麻煩?這是因為要避免你的view也許還有其他的手勢行為,所以必須判斷是屬於
測偵編輯的行為。



搜尋相關Tags的文章: [ Swift 3 ] , [ edit ] , [ endEditing ] , [ 取消輸入法 ] ,
本篇文章發表於2016-12-05 00:23
== 簽名檔 ==
發問的美學:
1.確定你的先備知識條件足夠,基礎該學習的就不應該問人。
2.先思考過或先google過。
3.明確表達問題。
4.表達明確,能詳細問題的code。
5.發問的問題,絕不刪除,留給其他遇到相同問題的人一個好的紀錄。
6.我的skypelinetkdmaf,歡迎直接詢問。
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

可樂快跑
檢舉此回應
補充修正,是呼叫UITextField的endEditing()函式,不是直接呼叫endEditing()
本篇文章回覆於2016-12-05 00:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.