私が使用しているバインドされた API のドキュメントから:
overrideClassNames
これを使用して、デフォルトの PSPDF* クラスの代わりに特定のサブクラスを使用します。たとえば、[PSPDFAnnotationParser クラス] / [MyCustomAnnotationParser クラス] のエントリをキーと値のペアとして追加して、カスタム サブクラスを使用します。(MyCustomAnnotationParser は PSPDFAnnotationParser のサブクラスである必要があります) オーバーライド クラスがオーバーライドされたクラスのサブクラスでない場合、例外をスローします。注: ディスクに保存するときにシリアライズされません。
@property (nonatomic, strong) NSDictionary *overrideClassNames
これが私が試したものですが、うまくいきません。どうやら文字列は必要ではなく、実際の型か何かが必要です。これを MonoTouch で使用するにはどうすればよいですか?
var oClassDic = new NSMutableDictionary();
oClassDic.Add(new NSString("[PSPDFAnnotationParser class]"), new NSString("[PSPDFKitAnnotationParser class]"));
oDoc.OverrideClassNames = oClassDic;
私が作成した PSPDFKitAnnotationParser は次のようになります。
[Register("PSPDFKitAnnotationParser")]
public class PSPDFKitAnnotationParser : PSPDFAnnotationParser
{
public PSPDFKitAnnotationParser () : base()
{
}
public PSPDFKitAnnotationParser (PSPDFDocumentProvider provider) : base(provider)
{
}
public PSPDFKitAnnotationParser (IntPtr handle) : base(handle)
{
}
public PSPDFKitAnnotationParser (NSObjectFlag t) : base(t)
{
}
public PSPDFKitAnnotationParser (NSCoder coder) : base(coder)
{
}