Go语言的Cocoa绑定

Kor*_*nel 34 cocoa go cocoa-bindings scripting-bridge

是否可以在Google Go中编写Mac OS X/Cocoa应用程序?

是否有Go-Obj-C桥?(在我看来,Obj-C的动态非常适合Golang的界面)

我至少可以将两者连接在一起,并通过普通的C函数让它们相互通信吗?

Kis*_*aki 11

CGo使您能够调用C代码.

请参阅CGo文档有关它的信息性官方博客文章.

似乎还没有可可绑定/库,但您可能需要查看GTK包以供参考.

  • [MonoMac](https://github.com/mono/monomac)还应该介绍如何使用C调用与Objective-C进行交互 (3认同)

Alb*_*igo 9

现在似乎没有一个用于将Cocoa绑定到Go的包.Cocoa是用Objective-C编写的,它是C的超集.目标-C消息是(或至少用于,不确定现代编译器)由编译器转换为C函数调用,如下所示:

objc_msgSend(object, sel_getUid("foo:bar:err:"), var, var2, errVar);
Run Code Online (Sandbox Code Playgroud)

因此,绝对可以使用Go的Cocoa.

如果你遇到一个问题,你发现你想在Go应用程序中使用Cocoa,恕我直言退后一步,想想你想要解决的问题.Cocoa大量使用命名参数,方法可以有很长的签名.这在Objective-C中运行良好,但我怀疑代码在Go中看起来不错.另一方面,Go解决了另一组问题.也许在Objective-C/Cocoa中用Go和GUI代码编写一个库(应用程序逻辑)就可以了?

TL; DR:在Objective-C中用Go和GUI代码编写模型怎么样?

  • 这正是我正在考虑为项目做的事情:GUI的Cocoa/ObjC,在Go中编写主模型.你会怎么做?我知道有一个用于调用C _from_ Go的cgo库,如果它是用Go编译器处理的,但我希望有一种方法,例如,用Go编译可执行代码,然后链接到Xcode中Cocoa中的库.建议? (6认同)

ale*_*ria 2

你可以看看我的博客文章作为例子。恐怕我没有继续努力,但这里的源代码可以帮助您建立一个裸 Cocoa/ObjC/Go 项目。

正如自述文件中所述,您将能够执行类似的操作。

package main

import (
  "github.com/alediaferia/gogoa"
)

func main() {
    app := gogoa.SharedApplication()
    window := gogoa.NewWindow(0, 0, 200, 200)
    window.SetTitle("Gogoga!")
    window.MakeKeyAndOrderFront()

    app.Run()
}
Run Code Online (Sandbox Code Playgroud)