标签: monomac

WPF的跨平台替代方案

所有,我正在考虑将我的应用程序从VB.net移植到基于C#的MONO项目,因此它可以在Windows和Mac上运行.但是,我需要一个Mac友好的替代WPF.它必须具有非常相似的功能.QML(通过QT)不是一个可行的选择,因为它为我们花费了太多的钱.

c# vb.net wpf mono monomac

15
推荐指数
2
解决办法
7214
查看次数

如何在MonoMac中制作仅托盘图标的C#应用​​程序(无停靠图标)?

我正在尝试创建一个只有托盘图标的应用程序,而不会出现在任务栏中.(类似于Dropbox)我需要创建应用程序的Windows和Mac版本,所以我尝试使用MonoMac来创建Mac前端.

在MonoMac中创建仅托盘应用程序的最佳方法是什么?

我找到的所有资源都说要做两件事之一:

  • 添加<key>LSUIElement</key><string>1</string>Info.plist文件中.
  • 将以下代码添加到类中的FinishedLaunching事件AppDelegate:NSApplication.SharedApplication.ActivationPolicy = NSApplicationActivationPolicy.Accessory;

我已经尝试了这两种的所有组合,但似乎只要我尝试实例化C#System.Timers.Timer,图标就会重新出现在屏幕底部的底座中.我错过了OSX处理后台应用程序的方法吗?

我究竟做错了什么?是否有更好的方法来制作具有上部托盘图标但在OSX中没有底部停靠图标的后台应用程序?

(这与这个问题非常相似,但这个问题来自几年前,并且从未得到完全回答,所以我希望那里可能有更完整的答案.)


这是我到目前为止的代码:

public partial class AppDelegate : NSApplicationDelegate
{
    MyServiceObject currentServiceObject;

    public AppDelegate () { }

    public override void FinishedLaunching (NSObject notification)
    {
        // Construct menu that will be displayed when tray icon is clicked
        var notifyMenu = new NSMenu();
        var exitMenuItem = new NSMenuItem("Quit My Application", 
            (a,b) => { System.Environment.Exit(0); }); // Just add 'Quit' …
Run Code Online (Sandbox Code Playgroud)

c# macos mono monomac

13
推荐指数
1
解决办法
2476
查看次数

Xamarin.Mac和Mono:OSX之间的区别在哪里?

Xamarin.Mac和Mono:OSX之间的区别在哪里?我知道Xamarin买了Mono所以我认为它应该是一样的.但Mono:OSX似乎是免费的,而Xamarin.Mac至少需要399美元.那么两者之间的差异在哪里呢?

c# macos mono monomac xamarin.mac

12
推荐指数
2
解决办法
1万
查看次数

未知解决方案项目类型:{42C0BBD9-55CE-4FC1-8D90-A7348ABAFB23}

我试图在Mac Mavericks上的Monodevelop(3.0.5,启用MonoMac加载项)中打开一个项目.

我收到此错误:

MonoDevelop.Projects.Formats.MSBuild.UnknownSolutionItemTypeException: Unknown solution item type: {42C0BBD9-55CE-4FC1-8D90-A7348ABAFB23};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
  at MonoDevelop.Projects.Formats.MSBuild.MSBuildProjectHandler.CreateSolutionItem (IProgressMonitor monitor, MonoDevelop.Projects.Formats.MSBuild.MSBuildProject p, System.String fileName, System.String language, System.String typeGuids, System.String itemType, System.Type itemClass) [0x00143] in /Users/builder/data/lanes/monodevelop-lion-monodevelop-3.0-series/e159cf08/source/monodevelop/main/src/core/MonoDevelop.Core/MonoDevelop.Projects.Formats.MSBuild/MSBuildProjectHandler.cs:369
Run Code Online (Sandbox Code Playgroud)

最相关的部分可能就是这个:

未知解决方案项目类型:{42C0BBD9-55CE-4FC1-8D90-A7348ABAFB23}; {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}

这些UUID可以在我尝试打开<ProjectTypeGuids>.csproj文件中找到.

  • FAE04EC0-301F-11D3-BF4B-00C04F79EFBC 是C#项目的UUID,
  • 42C0BBD9-55CE-4FC1-8D90-A7348ABAFB23 是MonoMac项目的UUID.

我可以正常打开其他C#项目,所以我猜这是Monomac的一个问题?

Monodevelop启用了MonoMac插件.我尝试从源代码编译MonoMac,但它生成的DLL无法作为加载项(ZipException)加载.

c# macos mono monodevelop monomac

12
推荐指数
1
解决办法
1万
查看次数

非托管堆栈溢出:IP:0x26eb76,错误地址:0xbf808ffc

我的Mono应用程序在Mac上崩溃并显示此消息(完整日志):

$ mono --debug bin/Debug/SparkleShare.app/Contents/MonoBundle/SparkleShare.exe
[...]
Stack overflow in unmanaged: IP: 0x26eb76, fault addr: 0xbf808ffc
[...]
Run Code Online (Sandbox Code Playgroud)

"in unmanaged"意味着堆栈溢出不在我的代码中(我只有托管代码),而是在我嵌入的库(SQLite,DotCmis,NewtonSoft.Json)或Mono的代码中.

即使我在调试模式下编译并运行,我得到的只是这两个十六进制.

问题:如何调查此堆栈溢出?任何诡计?

注意:相同的库(具有几乎相同的代码)在Linux和Windows上运行良好.

stack-overflow mono unmanaged monodevelop monomac

9
推荐指数
1
解决办法
2672
查看次数

应该如何布置NSTableCellViews?

我有一个相当基本MainWindow.xib的源列表样式侧边栏.我通过将源列表模板拖到窗口中来创建它,窗口已经包含两个NSTableCellViews:HeaderCellDataCell.

后者由图标(使用NSImageView)和标签(NSTextField)组成.相反,我想要标签和另一个较小的标签.在IB中,这看起来如下:

根据IB的来源清单

如果我专注于公正DataCell,它会相应地突出显示:

DataCell突出显示

事实上,实际运行程序,它看起来不像模板:

选择实时DataCell中的第二项

请注意两者如何NSTextField一起被粉碎成一个.我的理解是,基于视图的NSOutlineViews(以及基于视图的NSTableViews)应该被设计为IB内的模板.相反,模板中的维度似乎大多被忽略了.

以下是从数据源设置视图值的代码:

public class TourSourceListDelegate : NSOutlineViewDelegate
{
    public override bool IsGroupItem(NSOutlineView outlineView, MonoMac.Foundation.NSObject item)
    {
        return (item as TourSourceListDataSource.Item).IsHeader;
    }

    public override NSView GetView(NSOutlineView outlineView, NSTableColumn tableColumn, MonoMac.Foundation.NSObject item)
    {
        if (IsGroupItem(outlineView, item))
        {
            return outlineView.MakeView("HeaderCell", this);
        }
        else
        {
            var data = item as TourSourceListDataSource.Item;
            var dataView = outlineView.MakeView("DataCell", this);

            (dataView.Subviews[0] as …
Run Code Online (Sandbox Code Playgroud)

xib nstextfield monomac xamarin-studio xcode5

9
推荐指数
1
解决办法
513
查看次数

我在哪里可以下载MonoMac的编译版本?

Miguel de Icaza今天宣布了一个名为MonoMac的新项目,使用Mono和C#为Mac开发应用程序:http://tirania.org/blog/archive/2010/Apr-19.html

在帖子中,他提供了到subversion存储库的链接,但有没有可供下载的构建版本?

c# macos mono monomac

8
推荐指数
1
解决办法
954
查看次数

在Damarin.Mac绑定dll中嵌入dylib

我正在为Xamarin.Mac/ 创建绑定MonoMac.我想将dylib生成的内容嵌入到dll已完成Xamarin.iOS[LinkWith]属性中.

有可能吗?如果是这样的话?或者我应该dylib从消费应用程序加载?再次在这种情况下,怎么样?

我想: -丢弃dylib本地参考文件夹(不工作) -增加一个[assembly: MonoMac.RequiredFramework]属性(未找到dylib)

dylib monomac xamarin.mac

8
推荐指数
1
解决办法
1015
查看次数

使用Xamarin Studio运行新的MonoGame项目

我正在尝试使用MonoGame为mac启动一个新项目.我已经安装了我认为必需的所有东西但是当我运行新项目时(单声道游戏徽标应该弹出)我在输出中得到这两行:

加载程序集:/Users/Kristin/Projects/Test/Test/bin/Debug/Test.app/Contents/MonoBundle/Test.exe加载程序集:/Users/Kristin/Projects/Test/Test/bin/Debug/Test.app /Contents/MonoBundle/MonoMac.dll [外部]

并且启动的新应用程序挂起而不会弹出窗口.我尝试按照此页面上的步骤操作:http://jamie.ly/wordpress/programming/software/setting-up-a-monogame-mac-application-with-xamarin-studio/

但似乎没有什么能解决我的问题.有任何想法吗?

installation monomac monogame xamarin

8
推荐指数
1
解决办法
7970
查看次数

在MonoMac应用程序中包含自定义dll和dylib

背景:我的MonoMac应用程序使用sqlite3.0.8.6.dylib的自定义构建.

我需要确切的步骤让MyApp.app使用这个dylib.

以下是我采取的一些步骤:

  1. 将dylib复制到MyApp.app/Contents/SharedSupport.(相关问题:这是第三方dylibs的首选位置还是MyApp.app/Contents/Frameworks首选?)

  2. 更改了库的已安装名称,以使其与新位置匹配.

    MyApp.app/Contents/SharedSupport> otool -L libsqlite3.0.8.6.dylib 
    libsqlite3.0.8.6.dylib:
        @executable_path/../SharedSupport/libsqlite3.0.8.6.dylib (compatibility version 9.0.0, current version 9.6.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
    
    Run Code Online (Sandbox Code Playgroud)

问题

  1. MyApp.app/Contents/MacOS/MyApp不直接引用dylib,因此我无法使用install_name_tool指向新的库位置.我相信该库是由System.Data.Sqlite.dll引用的.
  2. 我想在启动器脚本中覆盖DYLD_FALLBACK_LIBRARY_PATH, MonoMac现在使用二进制启动器(MyApp.app/Contents/MacOS/MyApp),而不是脚本,所以我在那里运气不好.

MonoMac众神会帮助解决一个简单的解决方案吗?我花了几个月的时间,一直在努力让它发挥作用.

请提供确切的步骤 - 这个问题与细节有关.

mono bundle dylib monomac

7
推荐指数
1
解决办法
3436
查看次数