iOS UITextField 有哪些偏僻的知識點(diǎn)?

概覽

UITextField 作為可編輯的文本控件,它可以幫助開發(fā)者收集通過鍵盤輸入的文本內(nèi)容。鍵盤的輸入樣式是支持配置的:文本、郵箱、數(shù)字、是否加密(密碼輸入的場景)、鍵盤的return 按鈕樣式等等。由于UITextField 是繼承于 UIControl,所以它的交互我們可以通過 target-action的方式來處理,當(dāng)然UITextFieldDelegate也會告訴我們編輯時(shí)的各種變更事件。

此外,對于日常的輸入框場景,我們可能還需要在輸入框的左右提供一些快捷操作的按鈕,比如右側(cè)的清空按鈕,此時(shí)我們可以通過設(shè)置UITextField的 leftView Or RightView。

let overlayButton = UIButton(type: .custom)
let bookmarkImage = UIImage(systemName: "bookmark")
overlayButton.setImage(bookmarkImage, for: .normal)
overlayButton.addTarget(self, action: #selector(displayBookmarks), 
    for: .touchUpInside)
overlayButton.sizeToFit()
        
// Assign the overlay button to the text field
textField.leftView = overlayButton
textField.leftViewMode = .always

展示和隱藏鍵盤

當(dāng)一個(gè)UITextField 變成第一響應(yīng)者時(shí),系統(tǒng)會自動彈起鍵盤,即調(diào)用becomeFirstResponder,與之對應(yīng)的 調(diào)用 resignFirstResponder 可以收起鍵盤。實(shí)際的研發(fā)中,我們也可以通過UIWindowendEdit 方法在全局的任意地方快捷的收起鍵盤。

Note: 鍵盤的彈出及收起對應(yīng)的各種通知也可能需要我們?nèi)ヌ幚?,因?yàn)殒I盤彈出時(shí)可能會遮蓋我們的頁面。鍵盤的相關(guān)通知這里就不再贅述了,有興趣的同學(xué)可以自行查詢

輸入內(nèi)容及配置

格式化輸入內(nèi)容一般通過設(shè)置NSAttributedString 的方式,比如常見的 文本的Font、顏色、或是自定義占位文字的樣式。對于一些特殊的場景,比如需要配置輸入框的截?cái)喾绞綖橛肋h(yuǎn)不展示省略號(正常的輸入框,持續(xù)輸入時(shí)即使超出控件的最大寬度,也會自動向左移動,不會展示省略號,當(dāng)時(shí)退出第一響應(yīng)者及失去焦點(diǎn)時(shí),輸入框自動變成帶有省略號的截?cái)嗄J剑?/strong>。

這里還有一些非常實(shí)用的配置項(xiàng):

adjustsFontSizeToFitWidth,通過減少字號的方式來自適應(yīng)寬度以便盡可能多的展示內(nèi)容。

clearsOnBeginEditing 開始輸入時(shí) 清空舊的內(nèi)容 (這里還有個(gè) clearsOnInsertion

borderStyle 配置輸入框的 邊框樣式

inputView 通過自定義鍵盤的 inputView 的方式,來變更當(dāng) 該TextField 變成第一響應(yīng)者時(shí)彈起的鍵盤的樣式

markedTextRange 高亮的文本(可用于 中文輸入時(shí)判斷是否處于拼音輸入時(shí)的高亮狀態(tài))

UITextFieldDelegate

使用 UITextField 的場景時(shí)常需要我們對輸入的內(nèi)容進(jìn)行校驗(yàn),或是對整個(gè)編輯輸入的過程進(jìn)行管理,此時(shí)就需要我們對UITextFieldDelegate 進(jìn)行深入研究。常見的場景包括 限制用戶輸入文本的長度,輸入時(shí)可能產(chǎn)生的提示等等。

全部的代理方法可以查看:UITextFieldDelegate

iOS 分詞處理

在輸入框作為搜索的場景中,我們時(shí)常需要對輸入的內(nèi)容進(jìn)行分詞處理。具體的代碼參考:iOS 分詞處理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容