Не могу добавить изображение как NSTextAttachment в UITextField - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь добавить изображение как NSTextAttachment к UITextField, но все, что я получаю, это ,

Код внутри пользовательского UITextField:

let myAttachment = NSTextAttachment()
myAttachment.image = myImage
myAttachment.bounds = CGRect(origin: .zero, size: myImage.size)

let myImageString = NSAttributedString(attachment: myAttachment)
let updatedText = NSMutableAttributedString()
updatedText.append(myImageString)

let myTextString = NSAttributedString(string: ", " + (self.text ?? ""))

updatedText.append(myTextString)

self.attributedText = updatedText

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

UITextField не разрешит NSTextAttachment, но UILabel разрешит NSTextAttachment.

enter image description here

Например:

let attachment = NSTextAttachment()
let imageTest = UIImage(named:"user.png")
attachment.image = imageTest
let myString = NSMutableAttributedString(string: "My text ")
let myStringWithImage = NSMutableAttributedString(attributedString: NSAttributedString(attachment: attachment))
myStringWithImage.append(myString)
myTextField.attributedText = myStringWithImage
myLabel.attributedText = myStringWithImage

Нет ответов в этом яблоке тема .На мой взгляд, мы можем вводить эмодзи в текстовое поле, но не вложение текста.В текстовом поле мы даем пользователю возможность ввода текста.

Вы можете использовать leftView из UITextField для отображения изображения.

0 голосов
/ 21 февраля 2019

Вы правы, NSTextAttachment не появляется в UITextField, я не уверен, является ли это ошибкой или из-за UITextField, я подам радар и обновлю ответ здесь:

Между тем, если вы можете изменить элемент пользовательского интерфейса на UILabel и UITextView, следующий рабочий файл:

let attachment = NSTextAttachment()
attachment.image = myImage
attachment.bounds = CGRect(origin: .zero, size: myImage.size)

let attributedStr = NSMutableAttributedString(string: self.text ?? "")
attributedStr.insert(NSAttributedString(attachment: attachment), at: 0)

enter image description here

...