首页 > 解决方案 > 如何获取 UITextField 的行高

问题描述

我有几个问题在网上找不到答案:

1.如何获取UITextField的行高?

2.如何让 UITextField 最多只能输入 3 行文本?

3.如何让 UITextField 每行最多输入 25 个字符?

并感谢您的回答!

标签: iosobjective-ciphonexcode

解决方案


正如评论所说,您应该使用 UITextView,而不是 UITextField。UITextField 只处理一行。使用 UITextView 处理多行文本。

我要给你一个关于数字3的意见。

首先,有一些limits the length关于 textview 的东西。
自动布局到 25 个字符的长度以适合您想要的字体大小。

二是当文本达到 25 个字符时,it adds a line-breaking symbol.


extension mainVC: UITextViewDelegate {

   func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
        
        if let char = text.cString(using: String.Encoding.utf8) {
            let isBackSpace = strcmp(char, "\\b")
            
            if isBackSpace != -92 {
                if textView.text.count == 25 {
                    textView.text += "\n"
                }
            }
        }
        
     
        return true
    }
}

如果您输入的是not backspace,它将被执行。如果是 25 个字符,可以'\n'在 textView 中的文本中添加行符号并进行更改。


推荐阅读