package naive import ( "github.com/progrium/darwinkit/dispatch" "github.com/progrium/darwinkit/macos/appkit" "github.com/progrium/darwinkit/macos/foundation" ) func (tiv TextInputView) toNative() appkit.IView { ntiv := appkit.NewTextField() if tiv.Value != nil { ntiv.SetStringValue(tiv.Value.Value()) if eff, ok := tiv.Value.(*Effect[string]); ok { tfd := &appkit.TextFieldDelegate{} tfd.SetControlTextDidChange(func(obj foundation.Notification) { dispatch.MainQueue().DispatchAsync(func() { if ntiv.StringValue() != eff.value { eff.SetValue(ntiv.StringValue()) } }) }) ntiv.SetDelegate(tfd) eff.OnChange(ntiv.SetStringValue) } } if tiv.Placeholder != nil { ntiv.SetPlaceholderString(tiv.Placeholder.Value()) if eff, ok := tiv.Placeholder.(*Effect[string]); ok { eff.OnChange(ntiv.SetPlaceholderString) } } return ntiv }