Ios UITextField中插入符号/光标的奇怪行为
(Xcode10.1,Swift,iOS 11和iOS 12)Ios UITextField中插入符号/光标的奇怪行为,ios,swift,uitextfield,Ios,Swift,Uitextfield,(Xcode10.1,Swift,iOS 11和iOS 12) 问题:如何增加UITextField中插入符号/光标的高度 到目前为止我所尝试的: 我这样做了,问题解决了 class BPTextField: UITextField { override func caretRect(for position: UITextPosition) -> CGRect { //CGRect rect = [super caretRectForPosition:positi
问题:如何增加UITextField中插入符号/光标的高度 到目前为止我所尝试的:
我这样做了,问题解决了
class BPTextField: UITextField {
override func caretRect(for position: UITextPosition) -> CGRect {
//CGRect rect = [super caretRectForPosition:position];
var rect = super.caretRect(for: position)
let h = self.frame.height - 5
let y_ = (self.frame.height - h)/2
rect.origin.y = y_
rect.size.height = h;
return rect;
}
}
但是,当我改变键盘语言(从英语印度语到日语假名)并键入单个字符时,插入符号/光标在文本字段中向上移动
请帮帮我
我已经浏览了这些链接,编辑 我正在使用
YYText
库,我正在将此BPTextField
插入YYLabel
作为NSAttributedStringAttachment
这是NSAttributedString,let main = NSMutableAttributedString(string: text_)
main.yy_color = .darkGray
main.yy_font = questionFont
main.yy_lineSpacing = 5.0
main.yy_lineBreakMode = .byWordWrapping
//附件:
let attachment = NSMutableAttributedString.yy_attachmentString(withContent: self.tf, contentMode: UIView.ContentMode.center, attachmentSize: self.tf.frame.size, alignTo: questionFont, alignment: YYTextVerticalAlignment.bottom)
attachment.yy_baselineOffset = -5.0
root.append(attachment)
//BPTextField
self.tf = BPTextField(frame: CGRect(origin: CGPoint.init(x: 0, y: 13), size: CGSize(width: tfWidth.width + 7.5, height: tfWidth.height + 13.0)))
self.tf.borderStyle = UITextField.BorderStyle.none
self.tf.tag = 0
self.tf.font = questionFont
self.tf.autocorrectionType = UITextAutocorrectionType.no
self.tf.textColor = .darkGray
self.tf.setRoundedCorners(corners: UIRectCorner.allCorners, withRadius: 4.0)
// self.tf.setLeftPaddingPoints(5.0)
// self.tf.setRightPaddingPoints(0.0)
self.tf.backgroundColor = #colorLiteral(red: 0.9058823529, green: 0.9529411765, blue: 1, alpha: 1)
self.tf.tintColor = #colorLiteral(red: 0.2196078431, green: 0.6156862745, blue: 1, alpha: 1)
self.tf.returnKeyType = .done
self.tf.delegate = self
您可以按如下方式计算原点y
override func caretRect(for position: UITextPosition) -> CGRect {
var rect = super.caretRect(for: position)
let size = CGSize(width: rect.size.width, height: self.frame.height - 5)
// Calculating center y
let y = rect.origin.y - (size.height - rect.size.height)/2
rect = CGRect(origin: CGPoint(x: rect.origin.x, y: y), size: size)
return rect
}
我会尽量让你知道的。谢谢你的即时支持。是的,我试过了,但没有运气。。。谢谢你的努力。我已经为你编辑了我的问题。谢谢你的回复。