【问题标题】:How do I get the line height of UITextField如何获取 UITextField 的行高
【发布时间】:2021-09-28 16:29:01
【问题描述】:
我有几个问题在网上找不到答案:
1.如何获取UITextField的行高?
2.如何让 UITextField 最多只能输入 3 行文字?
3.如何让 UITextField 每行最多输入 25 个字符?
感谢您的回答!
【问题讨论】:
-
首先,“行高”是字体属性,而不是文本字段属性。其次,UITextField 只是单行……UITextView 用于多行文本输入。第三,您的意思是 当文本换行时最多 3 行?或者,3 行意味着最多 2 个 Return / Newline 条目?第四,你的意思是每行 25 个字符,然后 wrap 文本?第五,您是否尝试过搜索这些问题?请查看How to Ask。
标签:
ios
objective-c
iphone
xcode
【解决方案1】:
正如评论所说,您应该使用 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 个字符,可以在 textView 中的文本中添加行符号'\n' 并进行更改。