如何控制 NSTextView 中图像附件的大小

jlj*_*jlj 1 macos image nstextview

默认情况下,在 NSTextView 中,图像附件以其实际分辨率显示。对于大图像,这会导致视图中仅显示图像的一小部分。这看起来不太好,用户必须进行大量滚动才能在图像后输入文本。

例如,在下面的窗口中,您无法在文本视图中了解太多有关图像的信息。

NSTextView 中的默认图像大小

所以问题是:如何缩小图像附件,以便它们适合 NSTextView?

jlj*_*jlj 6

您可以在互联网上找到一些基于子类化的解决方案,但是这样做,您会失去NSTextView免费NSTextAttachmentCell提供的许多良好行为,例如在附加图像中创建注释。

实际上有一个更简单的解决方案:使用一个NSLayoutManager名为的属性defaultAttachmentScaling来完成我们想要的操作。

在您的代码中,设置此属性,如下所示:

myTextView.layoutManager.defaultAttachmentScaling = NSImageScaleProportionallyDown;
Run Code Online (Sandbox Code Playgroud)

就是这样:现在可以缩放大图像以匹配文本视图的宽度。 NSTextView 中设置了 defaultAttachmentScaling 的图像大小

有关此属性的详细信息,我建议您阅读头文件中的注释NSLayoutManager.h

iOS 开发者请注意:不幸的是,此属性在 iOS 上不可用。