Objective c 戈朗+;cgo-AppDelegate实现不需要';行不通
我想在go中编写一个能够在MacOS上打开自定义文件类型(.slc)的应用程序。我创建了一个空白的xcode项目来获取所有必要的代码,并通过cgo将其实现到我的应用程序中。当我双击某个文件时,应用程序会打开,但会抱怨无法以这种格式打开文件: 这是我的信息列表: 执行情况如下: /sweep/appDelegate\u darwin.goObjective c 戈朗+;cgo-AppDelegate实现不需要';行不通,objective-c,macos,go,cocoa,cgo,Objective C,Macos,Go,Cocoa,Cgo,我想在go中编写一个能够在MacOS上打开自定义文件类型(.slc)的应用程序。我创建了一个空白的xcode项目来获取所有必要的代码,并通过cgo将其实现到我的应用程序中。当我双击某个文件时,应用程序会打开,但会抱怨无法以这种格式打开文件: 这是我的信息列表: 执行情况如下: /sweep/appDelegate\u darwin.go package surge //#cgo CFLAGS: -x objective-c //#cgo LDFLAGS: -framework Cocoa
package surge
//#cgo CFLAGS: -x objective-c
//#cgo LDFLAGS: -framework Cocoa
//#include "appDelegate_darwin.h"
import "C"
/sweep/appDelegate_darwin.h
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@end
#import <Cocoa/Cocoa.h>
extern void HandleFile(char *);
@interface AppDelegate : NSObject <NSApplicationDelegate>
@end
@interface Document : NSDocument
@end
其他信息:我使用wails框架()向应用程序添加一个漂亮的vue.js前端,并使用内置的wails build
命令
cgo和objective-c中的其他实现(如自定义协议处理程序)也能正常工作。经过几个不眠之夜,我通过调查和学习常规mac应用程序的结构,找到了自己的解决方案 除了实现
AppDelegate
之外,还需要实现Document
和一些附加函数以使其运行。这是我的
/sweep/appDelegate_darwin.h
#import <Cocoa/Cocoa.h>
@interface AppDelegate : NSObject <NSApplicationDelegate>
@end
#import <Cocoa/Cocoa.h>
extern void HandleFile(char *);
@interface AppDelegate : NSObject <NSApplicationDelegate>
@end
@interface Document : NSDocument
@end
我希望有人觉得这个有用