프레임 워크를 XCode 프로젝트에 추가하는 것은 정확합니다. MonoDevelop에 의해 생성 되었기 때문에 프레임 워크를 추가 할 수는 없습니다. 그런 의미에서 '진짜'프로젝트는 아닙니다.
당신은 몇 가지 옵션이 있습니다
1 - C#을
2에서 자신의 구현을 작성 - C 번호에 오픈 소스 구현 (예를 들어, 크롬 탭)와 포트를 선택합니다. 이것은 효과가 있지만 분명히 시간이 많이 걸릴 것입니다. 또한 MonoMac에없는 일부 Cocoa API에 대한 액세스가 필요하다는 것을 알 수 있습니다. 해결책을 찾아내거나 구현해야합니다.
3 - 네이티브 프레임 워크를 앱에 바인딩 할 수 있습니다. 이미 관심이있는 프레임 워크에 대해 이미이 작업을 수행 한 사람을 찾을 수 있습니다. 또는 당신 스스로 할 수 있습니다.
저는 하루나 이틀 동안 # 3 혼자 힘들었지 만, 마침내 다 알아 냈습니다. 그래서 당신과 프로세스를 공유하고 도움이 될지도 모릅니다.
크롬 탭 소스를 다운로드하고 프레임 워크를 컴파일했습니다. i386으로 컴파일해야합니다. MonoMac은 현재 32 비트 런타임 만 제공하기 때문에
ChromiumTabs.framework를 프로젝트에 추가하고 $ {TargetDir}/$ {ProjectName} .app/Contents/Frameworks로 복사하기 위해 미리 빌드 스크립트를 설정했습니다./
내가 NSApplication.Init()를 호출하기 전에, 홈페이지 내에서 수동으로 프레임 워크를로드
var baseAppPath = Directory.GetParent(Directory.GetParent(System.AppDomain.CurrentDomain.BaseDirectory).ToString());
var chromiumPath = baseAppPath + "/Frameworks/ChromiumTabs.framework/ChromiumTabs";
var hresult = Dlfcn.dlopen(chromiumPath, 0); // Non-zero result indicates success
다음, (당신은 소스에서 컴파일 MonoMac에서 사용 가능)와 그것을 먹이를 사용 parse.exe .h 파일을 프레임 워크에서 가져옵니다. 생성 된 출력을 사용하여 바인딩을 정의 할 인터페이스를 만듭니다 (바인딩 유형 here에 대한 좋은 설명서가 있음). 예 :
using System;
using System.Drawing;
using MonoMac.Foundation;
using MonoMac.AppKit;
namespace ChromiumTabs
{
[BaseType (typeof (NSWindowController))]
interface CTTabWindowController {
}
[BaseType (typeof (CTTabWindowController))]
interface CTBrowserWindowController {
[Export ("browser")]
CTBrowser Browser { get; }
[Export ("initWithBrowser:")]
IntPtr Constructor (CTBrowser browser);
}
[BaseType (typeof (NSObject))]
interface CTBrowser {
[Export ("addBlankTabInForeground:")]
CTTabContents AddBlankTabInForeground (bool foreground);
[Export ("createBlankTabBasedOn:")]
CTTabContents CreateBlankTabBasedOn (CTTabContents baseContents);
}
[BaseType (typeof (NSDocument))]
interface CTTabContents {
[Export ("initWithBaseTabContents:")]
IntPtr Constructor ([NullAllowed]CTTabContents baseContents);
[Export ("viewFrameDidChange:")]
void ViewFrameDidChange (RectangleF newFrame);
}
}
이제 .cs 파일을 bmac.exe에 제공하십시오 (제공해야 할 인수에 대한 도움말 참조). 그러면 프로젝트에서 참조 할 수있는 관리되는 DLL이 출력됩니다.
이제 새 바인딩을 사용할 수 있습니다!
라이브러리에 최소한의 바인딩 만 했으므로 설치하고 실행하기에 충분합니다. 그 here을 다운로드 할 수 있습니다.