В Objective-C, я могу сделать мой подкласс NSTextField соответствует в протокол NSTextViewDelegate - вот так:monomac/Xamarin.Mac - производные NSTextField с использованием NSTextViewDelegate
@interface PasswordField : NSTextField <NSTextViewDelegate>
Как я могу перевести эту идиому на C#/monomac?
Я попытался подклассов NSTextViewDelegate:
private class TextViewDelegate : NSTextViewDelegate
{}
И назначая, что к делегату собственности моего NSTextField подкласса:
public class PasswordField : NSTextField
{
public PasswordField(NSCoder coder) : base(coder)
{
this.Delegate = new TextViewDelegate();
}
}
Однако, очевидно, что это не работает, так как делегатом имущества NSTextField (правильно) напечатан как NSTextFieldDelegate.
Error CS0029: Cannot implicitly convert type `PasswordFieldControl.PasswordField.TextViewDelegate' to `MonoMac.AppKit.NSTextFieldDelegate' (CS0029)
Как сделать эту работу так, как в объективе-C?
Да, я заявил, что в моем вопросе. В Objective-C подклассы NSTextField можно подчинить протоколу NSTextViewDelegate. Я хочу знать, как воссоздать эту идиому в C#/MonoMac. – TheNextman
Если вы действительно хотите это сделать, назначьте его .WeakDelegate вместо .Delegate, хотя я рекомендую это. Вам нужно будет применить атрибут [Export (...)] к вашим методам делегатов. – Curtis
Я исправил ответ – Curtis