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

.Net MAUI在Apple Silicon的Mac Catalyst上拖拽功能故障求助

简而言之——核心问题

.Net MAUI应用在Mac Catalyst上的拖拽(Drag & Drop)功能出现故障,且仅发生在Apple Silicon设备上。急需修复方案或替代方法,目前尚未解决。

问题详情

基于.Net MAUI 8开发的复杂B2B应用,严重依赖拖拽功能将图片从列表复制到二维布局中。近期扩展支持macOS(此前仅支持iPad和Windows),但通过Mac Catalyst在Mac上运行时,拖拽功能失效。

拖拽启动时,调试输出错误:

2024-07-16 06:31:15.674 MacCatalystDragDropTest[1058:13565] Cannot find representation conforming to type com.apple.uikit.private.drag-item

拖拽看似正常启动(被拖拽项随鼠标指针移动符合预期),但释放到目标区域时,调试输出错误:

2024-07-16 06:31:16.294 MacCatalystDragDropTest[1058:13565] *** Assertion failure in -[NSFilePromiseReceiver receivePromisedFilesAtDestination:options:operationQueue:reader:], NSFilePromiseReceiver.m:349

目标元素的DropGestureRecognizer对应的事件/命令不会触发,且源元素需重启应用后才能再次被拖拽。

复现步骤

创建了极简测试应用确认问题并非主应用特定代码导致,测试应用表现与原应用完全一致。仅在Apple M2处理器设备上出现此问题,Intel Mac未发现异常。

测试应用为标准.Net MAUI应用,仅在MainPage.xaml中添加以下元素:

<Image Source="dotnet_bot.png">
    <Image.GestureRecognizers>
        <DragGestureRecognizer/>
    </Image.GestureRecognizers>
</Image>

<Image Source="dotnet_bot.png">
    <Image.GestureRecognizers>
        <DropGestureRecognizer/>
    </Image.GestureRecognizers>
</Image>
开发环境
  • 搭载Apple M2处理器的Mac Mini
  • macOS Sonoma 14.5(也曾在14.1.1版本测试)
  • Xcode 15.4
  • .Net SDK 8.0.303(也曾在更早版本中观察到问题)
  • .Net MAUI workload 8.0.61/8.0.100
  • .Net MAUI版本8.0.70(也曾在8.0.61及更早版本中观察到问题)
已尝试的解决方法
  • 创建干净测试应用(如上所述)
  • 彻底卸载Mac上的.Net和Mono后重新安装(问题依旧)
  • 绕过Gesture Recognizer,直接向原生视图添加UI交互代码(问题仍存在)
  • 向微软报告问题(对方确认行为,但后续无回应)
需求

需要可行的解决方向!是否有操作原生视图的替代方法?或是使用GestureRecognizer时遗漏了什么?

内容的提问来源于stack exchange,提问作者Jason Smith

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 23:36:04