Cocoa に基づいたメソッドを実装しようとしています。
- (void) alertDidEnd:(NSAlert *)alert returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo;
問題は void* 型のパラメータです。voidへのポインターに相当するC#が何であるかわかりません。
「void*」で安全でない実行を試みましたが、明らかに同じではありません。単純に「void」も試しましたが、C# コンパイラは、void をパラメーターの型として使用できないと主張しています。
何か案は?
Error CS0123: A method or delegate `MyProgram.MainWindow.alertDidEnd(MonoMac.AppKit.NSAlert, int, MonoMac.Foundation.NSObject)' parameters do not match delegate `MonoMac.Foundation.NSAction()' parameters (CS0123)
更新 (問題が解決した後):
これらは、この作業を行った呼び出しとメソッドです。
alert.BeginSheet ((NSWindow)sender, this, new Selector ("alertDidEnd:returnCode:contextInfo:"), IntPtr.Zero);
[Export("alertDidEnd:returnCode:contextInfo:")]
public void alertDidEnd (NSAlert alert, int result, IntPtr ci)
{}
1 つ目は、ウィンドウにアタッチされたアラートの表示です。2 つ目は、アラートが閉じられたときに呼び出される関数のメソッド宣言です。結果は int result に格納されます。