有没有办法限制文本字段而不是字符数?我希望在达到字段结尾时停止输入的能力。但是由于不同的角色具有不同的尺寸,因此停止在某个数量上并不是真正的解决方案。类似于"停在线的末端"会是完美的。
这对我不起作用
答案 0 :(得分:2)
您要做的不是计算新字符串的最大字符数,而是计算点的宽度,并将其与您需要的宽度进行比较。
[夫特]
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let combinedString = textField.attributedText!.mutableCopy() as NSMutableAttributedString
combinedString.replaceCharactersInRange(range, withString: string)
return combinedString.size().width > textField.bounds.size.width
}
您可能需要编辑属性以使其在一行上呈现。
答案 1 :(得分:0)
订阅controlTextDidChange
并通过
let s = NSString(string: <yourtext>)
let size = s.boundingRectWithSize(<#size: NSSize#>, options: <#NSStringDrawingOptions#>, attributes: <#[NSObject : AnyObject]?#>)
现在您可以检查文字是否太大。