0
를 사용하여 NSTextField있는 파생하여 NSTextViewDelegate 프로토콜 - 그래서 같은 : 나는 C#을이 관용구를 번역 할 수있는 방법monomac/Xamarin.Mac는 -, 내가 NSTextField있는 내 서브 클래스에 부합 할 수 목표 - C에서 NSTextViewDelegate
@interface PasswordField : NSTextField <NSTextViewDelegate>
/모노맥?
내가 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와 같이 만들려면 어떻게해야합니까? 같은 PasswordField 객체를 사용하려는 경우,
class TextViewDelegate : NSTextViewDelegate
{
public override void TextDidChange (NSNotification notification)
{
}
}
public class PasswordField : NSTextField
{
public PasswordField(NSCoder coder) : base(coder)
{
this.WeakDelegate = new TextViewDelegate();
}
}
또는이 두 가지 방법이 있습니다
예, 저의 질문에 언급했습니다. Objective-C에서는 서브 클래스 화 된 NSTextField가 NSTextViewDelegate 프로토콜을 따르는 것이 가능합니다. C#/MonoMac에서이 관용구를 재 작성하는 방법을 알고 싶습니다. – TheNextman
정말로 이것을하고 싶다면 .Delegate 대신 .WeakDelegate에 할당하십시오. [내보내기 (...)] 특성을 대리자 메서드에 적용해야합니다. – Curtis
대답을 수정했습니다 – Curtis