swift – UITextView长度问题
发布时间:2020-12-14 04:52:04 所属栏目:百科 来源:网络整理
导读:我有一个启用了滚动的UITextView,我可以更改里面文本的字体和大小.那么,我该如何设置文本限制?我已经尝试设置最大行数和最大字符数,但它不起作用,因为我需要设置文本的大小限制,我该怎么做? 解决方法 通常,您必须符合UITextFieldDelegate协议,将视图控制器
我有一个启用了滚动的UITextView,我可以更改里面文本的字体和大小.那么,我该如何设置文本限制?我已经尝试设置最大行数和最大字符数,但它不起作用,因为我需要设置文本的大小限制,我该怎么做?
解决方法
通常,您必须符合UITextFieldDelegate协议,将视图控制器指定为UITextField的委托(在IB或代码中指定),然后实现考虑字符串长度的shouldChangeCharactersInRange:
func textField(textField: UITextField,shouldChangeCharactersInRange range: NSRange,replacementString string: String) -> Bool { let oldString = textField.text ?? "" let startIndex = oldString.startIndex.advancedBy(range.location) let endIndex = startIndex.advancedBy(range.length) let newString = oldString.stringByReplacingCharactersInRange(startIndex ..< endIndex,withString: string) return newString.characters.count <= kMaxLength } 另一方面,如果要控制输入的文本量以符合控件的大小,则可以使用前面提到的shouldChangeTextInRange,但使用sizeWithAttributes来指示该方法是返回true还是false而不是字符数. 这不太对,但它说明了基本思想: func textField(textField: UITextField,withString: string) let stringSize = newString.sizeWithAttributes([NSFontAttributeName : textField.font ?? UIFont.systemFontSize()]) return stringSize.width < textField.editingRectForBounds(textField.bounds).size.width } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |