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

如何禁用iOS上.NET MAUI的长按导航选项?该功能引发应用导航问题

有两种常用方法可以禁用iOS平台上.NET MAUI的长按导航选项,具体如下:

方法一:全局禁用导航栏的长按手势

通过自定义导航页面渲染器,移除iOS导航栏上的所有长按手势识别器,实现全局禁用:

  1. 在iOS项目中创建自定义渲染器类:
using Microsoft.Maui.Controls.Platform;
using UIKit;

namespace YourAppNamespace.iOS.Renderers;

public class CustomNavigationPageRenderer : NavigationPageRenderer
{
    protected override void OnElementChanged(VisualElementChangedEventArgs e)
    {
        base.OnElementChanged(e);
        
        if (NavigationBar != null)
        {
            // 过滤掉所有长按手势识别器
            NavigationBar.GestureRecognizers = NavigationBar.GestureRecognizers?
                .Where(gesture => gesture.GetType() != typeof(UILongPressGestureRecognizer))
                .ToList();
        }
    }
}
  1. 在MauiProgram.cs中注册该渲染器:
builder.ConfigureMauiHandlers(handlers =>
{
#if IOS
    handlers.AddHandler(typeof(NavigationPage), typeof(CustomNavigationPageRenderer));
#endif
});
方法二:单独禁用单个导航按钮的长按菜单

如果只需要禁用特定导航按钮的长按选项,可以使用MAUI的iOS平台扩展方法:

var customToolbarItem = new ToolbarItem
{
    Text = "你的按钮文本",
    Command = new Command(() => { /* 按钮点击逻辑 */ })
};

// 针对iOS平台禁用长按菜单
#if IOS
customToolbarItem.On<iOS>().SetShowsMenu(false);
#endif

// 将按钮添加到导航栏
NavigationPage.SetToolbarItems(this, new[] { customToolbarItem });

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 17:08:16