簡體   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