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

如何在Xamarin Mac桌面应用中实现原生Preferences偏好设置屏幕

你需要的Xamarin.Mac桌面应用原生偏好设置功能完全可以实现,具体操作步骤如下:

  • 步骤1:启用并绑定主菜单偏好设置项响应
    Xamarin.Mac默认生成的应用主菜单中已内置Preferences...项,默认处于禁用状态,你可以在AppDelegate.cs的DidFinishLaunching生命周期方法中修改状态并绑定触发事件:
public override void DidFinishLaunching(NSNotification notification)
{
    // 获取应用顶层菜单(主菜单栏第一个选项)
    var appMenu = NSApplication.SharedApplication.MainMenu.ItemAt(0).Submenu;
    // 定位到偏好设置菜单项
    var preferencesItem = appMenu.ItemWithTitle("Preferences...");

    if (preferencesItem != null)
    {
        // 启用菜单项
        preferencesItem.Enabled = true;
        // 绑定点击触发的方法选择器
        preferencesItem.Action = new ObjCRuntime.Selector("showPreferences:");
    }

    // 保留原有项目启动逻辑
}
  • 步骤2:实现偏好设置窗口唤起逻辑
    在AppDelegate.cs中新增触发方法,加上导出标记匹配上一步的选择器:
[Export("showPreferences:")]
public void ShowPreferences(NSObject sender)
{
    // 这里替换为你自己实现的偏好设置窗口控制器
    var prefsController = new PreferencesWindowController();
    // 原生偏好设置默认是前台非模态窗口,调用该方法展示
    prefsController.Window.MakeKeyAndOrderFront(sender);
}

配置完成后系统默认的Cmd+,快捷键会自动关联到该菜单项,无需额外配置。如果你是自定义主菜单,手动创建菜单项时添加以下代码即可绑定快捷键:

preferencesItem.KeyEquivalent = ",";
preferencesItem.KeyEquivalentModifierMask = NSEventModifierMask.Command;
  • 步骤3:实现原生样式偏好设置界面
    如果需要实现和示例一致的顶部工具栏切换多面板的效果,可以直接使用Xamarin.Mac封装的NSTabViewController组件,将样式设置为NSTabViewControllerStyle.Toolbar即可,无需自定义UI即可获得原生系统交互效果。

示例效果参考:
Visual Studio偏好设置示例

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:54:01