如何获取 UITextField 的行高
How do I get the line height of UITextField
我有几个问题在网上找不到答案:
1.How 获取 UITextField 的行高吗?
2.How 我是否让 UITextField 最多只能输入 3 行文本?
3.How 我是否让 UITextField 每行最多只能输入 25 个字符?
感谢您的回答!
正如评论所说,您应该使用 UITextView,而不是 UITextField。
UITextField 只处理一行。
使用 UITextView 处理多行文本
我将就第 3 条给你一个意见。
首先,文本视图 limits the length
有一些东西。
自动布局为 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'
,然后改成
我有几个问题在网上找不到答案:
1.How 获取 UITextField 的行高吗?
2.How 我是否让 UITextField 最多只能输入 3 行文本?
3.How 我是否让 UITextField 每行最多只能输入 25 个字符?
感谢您的回答!
正如评论所说,您应该使用 UITextView,而不是 UITextField。 UITextField 只处理一行。 使用 UITextView 处理多行文本
我将就第 3 条给你一个意见。
首先,文本视图 limits the length
有一些东西。
自动布局为 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'
,然后改成