繁体   English   中英

如何将NSAttributedString绑定到UITextView

[英]How to bind NSAttributedString to UITextView

我们正在使用MVVMCross,并且在将NSAttributedString绑定到UITextView时遇到了麻烦。 这很奇怪,因为相同的代码可以在不使用BindingSet的情况下工作,也可以使用Bindig for Text属性而不是AttributedText

如前所述,这行代码未绑定,TextView仅显示默认文本:

set.Bind (TxtActivityText).For(txt => txt.AttributedText).To (vm => vm.Activity).WithConversion("ActivitySpanMessage");

...并输出以下警告: “ MvxBind:警告:6.06无法创建用于绑定Activity的AttributedText的目标绑定”

尽管此行工作正常:

set.Bind (TxtActivityText).For(txt => txt.Text).To (vm => vm.Activity).WithConversion("ActivitySpanMessage"); // Works fine also binding to the default property

最后,不用绑定也可以正常工作:

TxtActivityText.AttributedText = SpanMessageHelper.ConvertToAttributedString(ViewModel.Activity, null, null, null); // This function is the same I call in the ActivitySpanMessageConverter

有任何想法吗? 这可能是一个错误吗?

这可能是因为Xamarin链接器不包括UITextView.AttributedText,因为它仅在表达式中使用。 有关更多信息, 请参见此帖子: MvvmCross无法在iPhone上为EditingDidBegin创建目标绑定

您可以通过以下方法解决此问题:转到LinkerPleaseInclude.cs并更改您的UITextView包含方法:

public void Include(UITextView textView)
{
    textView.Text = textView.Text + "";
    textView.Changed += (sender, args) => { textView.Text = ""; };

    // Add this line here
    textView.AttributedText = new NSAttributedString();
}

暂无
暂无

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

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