如何检查 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 是否更改了值。
- One 使用
delegate
与 MacOS 原生方法相同,但与 navite 代码略有不同。
如下:
textField.Delegate = new MyNSTextDelegate();
创建一个 class 继承自 NSTextFieldDelegate
:
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);
}
我在 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 是否更改了值。
- One 使用
delegate
与 MacOS 原生方法相同,但与 navite 代码略有不同。
如下:
textField.Delegate = new MyNSTextDelegate();
创建一个 class 继承自 NSTextFieldDelegate
:
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);
}