You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决MarkupsCore扩展中EditModeText无法输入的问题

解决MarkupsCore文本编辑模式无法输入的问题

核心问题点

EditModeText本身不会自动提供输入交互,它仅负责文本标记的底层渲染与创建逻辑,输入文本的UI交互需要你自行实现。

具体实现方案

1. 基础实现(结合原生输入组件)

切换到文本编辑模式后,触发自定义输入流程,将用户输入内容传递给编辑模式:

// 切换至文本编辑模式
const textEditMode = new Autodesk.Viewing.Extensions.Markups.Core.EditModeText(mk_ext);
mk_ext.changeEditMode(textEditMode);

// 用原生prompt示例(可替换为你的自定义UI输入组件)
const inputContent = prompt("请输入文本内容:");
if (inputContent) {
    // 传递输入内容到编辑模式
    textEditMode.setText(inputContent);
    // 主动完成文本标记创建
    textEditMode.complete();
} else {
    // 用户取消输入,退出编辑模式
    mk_ext.changeEditMode(null);
}

2. 适配自定义UI的优化方案

如果你的专属UI已有输入控件(比如侧边栏文本框),可以按以下逻辑绑定:

  • 点击文本模式按钮时,激活UI中的输入框并自动聚焦
  • 用户输入完成后,点击“确认”按钮触发setText()和complete()完成标记创建
  • 用户取消输入时,调用mk_ext.changeEditMode(null)退出文本编辑模式

3. 关键API说明

  • setText(string):为当前文本编辑模式设置内容
  • complete():完成文本标记创建,将其添加到画布
  • cancel():取消当前编辑,丢弃未完成的文本标记

注意事项

  • 确保在调用setText前已成功切换到EditModeText模式
  • 若需要实时预览输入内容,可监听输入框的input事件,反复调用setText()更新预览
  • 自定义UI需避免覆盖画布的点击事件,防止干扰文本标记的位置确定逻辑

内容的提问来源于stack exchange,提问作者Gustavo da Costa e Silva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 00:52:10