繁体   English   中英

如何检查 NSTextField 是否更改了 C# 中的值?

[英]How can I check if NSTextField did change value in C#?

我在 C# 中创建了一个 Cocoa 应用程序(使用 Xamarin.Mac),我想检查 NSTextField 是否更改了值。 我在 C# 中找不到很多关于此的教程,并且为 swift 或覆盖找到的方法对我不起作用。 我试过这个:

 public override void ObjectDidEndEditing(NSObject editor)

 public override void DidChangeValue(string forKey)

在 MacOS 中使用 Xamarin 时,要知道NSTextField何时更改,您可以订阅它的Changed事件。

myTextField.Changed += TextField_Changed;

private void TextField_Changed(object sender, EventArgs e)
{
    //Here you can access your TextField to get the value.
}

希望这可以帮助。

有两种方法可以检查NSTextField是否更改了值。

  • 一种是使用与 MacOS 本地方法相同的delegate ,但是与导航代码有一点不同。

如下:

textField.Delegate = new MyNSTextDelegate();

NSTextFieldDelegate创建一个 class 继承:

class MyNSTextDelegate : NSTextFieldDelegate 
{
   [Export("controlTextDidChange:")]
   public void Changed(NSNotification notification)
   {
       NSTextField textField = notification.Object as NSTextField;
       Console.WriteLine("Text Changed : " + textField.StringValue);
   }
}
  • 另一个是使用 C# 方法中的Event

如下:

textField.Changed += TextValue_Changed;

或者

textField.Changed += new EventHandler(TextValue_Changed);

TextValue_Changed的实现:

private void TextValue_Changed(object sender, EventArgs e)
{
    NSNotification notification = sender as NSNotification;
    NSTextField textField = notification.Object as NSTextField;
    Console.WriteLine("Text Changed : " + textField.StringValue);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM