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

概覽

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

此外,對(duì)于日常的輸入框場(chǎng)景,我們可能還需要在輸入框的左右提供一些快捷操作的按鈕,比如右側(cè)的清空按鈕,此時(shí)我們可以通過(guò)設(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)會(huì)自動(dòng)彈起鍵盤,即調(diào)用becomeFirstResponder,與之對(duì)應(yīng)的 調(diào)用 resignFirstResponder 可以收起鍵盤。實(shí)際的研發(fā)中,我們也可以通過(guò)UIWindowendEdit 方法在全局的任意地方快捷的收起鍵盤。

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

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

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

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

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

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

borderStyle 配置輸入框的 邊框樣式

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

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

UITextFieldDelegate

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

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

iOS 分詞處理

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

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

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

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