Ios 如何确定UITextField(包括光标)中文本的大小?

Ios 如何确定UITextField(包括光标)中文本的大小?,ios,swift,uitextfield,Ios,Swift,Uitextfield,我想知道文本字段中文本的确切大小,这样当它超过初始的较小大小时,我可以使它变大 这段代码似乎可以工作,只是它不包括光标创建的空间 let textsize = (self.textField.text as NSString) .size(attributes: [NSFontAttributeName: self.textField.font as Any]) 有没有办法知道光标占了多少空间?字符串。大小(属性:)不计算光标的大小,它只计算字符。因此,您可以添加x 像素到您的text

我想知道文本字段中文本的确切大小,这样当它超过初始的较小大小时,我可以使它变大

这段代码似乎可以工作,只是它不包括光标创建的空间

let textsize = (self.textField.text as NSString)
    .size(attributes: [NSFontAttributeName: self.textField.font as Any])
有没有办法知道光标占了多少空间?

字符串。大小(属性:)不计算光标的大小,它只计算字符。因此,您可以添加
x

像素到您的
textSize.width
作为解决办法。

“…除了它不包括光标创建的空间之外。”您的意思是它不计算光标宽度还是什么意思?是的,NSString.size(attributes:)函数不计算光标宽度,因为它不包括在UITextField.text propertyOkey中,为什么不直接在
textSize.width
中添加2个像素呢?这就是我目前所采用的方法,但我想知道是否有更好的方法。这就是我到目前为止所做的,并且它是有效的。我这样回答是为了将来其他人也能从中受益。在我的情况下,2像素是不够的。我认为光标的大小可能因字体大小而异。@BRoyDawson很棒。更新了答案。