У меня есть NSAttributedString
объекты со встроенными изображениями. Они представлены в NSTextView
с. В iOS я смог изменить размеры NSTextAttachment
, и это делает изображение подходящим.Изменить размер изображения в NSTextView для соответствия
extension NSTextAttachment {
func setImageWidth(width: CGFloat, range: NSRange) {
var thisImage = image
if thisImage == nil {
thisImage = imageForBounds(bounds, textContainer: nil, characterIndex: range.location)
}
if thisImage != nil {
let ratio = thisImage!.size.height/thisImage!.size.width
bounds = CGRectMake(bounds.origin.x, bounds.origin.y, width, ratio * width)
print("New Bounds: \(bounds)")
}
}
}
Этот код также работает на OSX, но на самом деле он не изменяет размер изображения. Ниже вы можете видеть, что вокруг изображения есть нужный размер, но фактическое изображение переполняет окно.
Я также следовал следующее руководство: Implementing Rich Text with Images on OS X and iOS. Это переводит код в подклассы, но имеет тот же эффект.
Любые предложения? Есть ли что-то помимо NSTextAttachment.bounds
, что я должен настраивать?
UPDATE
Я обнаружил, что изменение size
компонент NSImage
работ! Однако теперь он показывает все мои изображения вверх, но в правильном размере. :(
Если вы хотите разрешить пользователям изменять размеры изображений, я создал библиотеку, чтобы сделать именно это: https://github.com/josephessin/ResizableTextAttachment. –