angular - 在 Chrome / MacOS 下使用 Monaco 编辑器 (Angular) 在文本和光标之间进行偏移
问题描述
在 Angular 应用程序中使用编辑器,我们可以看到文本和光标之间的偏移。例如,如果我们要擦除光标所在位置的一个字符,则删除之前两个或三个位置的字符。
这仅在 MacOS 下使用 Chrome 时才会发生。对于 MacOS 上的 Firefox / Safari 和 Linux 上的 Chrome / Firefox,我们没有这种行为。我正在使用版本0.18.1
。
有人遇到这个问题吗?
解决方案
我正在使用自定义字体,发现该行为是因为 Monaco 编辑器在字体有时间加载之前呈现在屏幕上。一旦字体加载并被缓存,该行为就不再发生。
我通过使用document.fonts
API解决了它。
我在摩纳哥编辑器渲染后添加了以下内容:
document.fonts.ready.then(() => {
monaco.editor.remeasureFonts()
})
这样,如果在 Monaco 编辑器渲染后字体完成加载,字体将被重新测量,确保编辑器内容中没有偏移。
推荐阅读
- swift - Cocoapods 加载错误。$ pod init -> 加载错误
- angular - Jhipster - Angular 接收其他用户的导航
- webpack - Nuxt/Vue-meta:info.meta.filter 不是函数
- swift4 - 从 PHAsset 问题中获取图像以检测图像的更新
- javascript - 从 firebase 渲染数据的反应问题
- android - 如何使用 ViewPager 显示半片段页面?
- reactjs - 如何强制使用非组件类对象更新组件?
- r - shinydashboardPlus 中是否有一个带有标签的框?
- bootstrap-4 - Bootstrap 4:如何设置特定响应方块的网格 - Col 或 Card?
- c# - 后面带标点的单词怎么找?