我正在构建一个Xamarin ios应用程序,已经测试了一段时间,但在发布模式下测试时遇到了问题。当用户开始在文本字段中键入答案时,我会更改文本字段的背景颜色和文本颜色。这是我的代码:
set.Bind (currencyText).For (x => x.BackgroundColor).To (vm => vm.AnswerViewColor).WithConversion ("NativeColor");
set.Bind (currencyText).For (x => x.TextColor).To (vm => vm.AnswerTextColor).WithConversion ("NativeColor");
在调试模式下,我测试过的任何设备都可以正常工作。在模拟器的调试模式下,我得到了下面的错误,尽管背景颜色变化很好,但文本颜色没有改变:
MvxBind:警告:66.81无法为绑定AnswerTextColor 的TextColor创建目标绑定
在发布模式下,它似乎也不起作用,因为我的文本颜色保持为白色,所以我的假设是我也收到了同样的错误/警告。有什么想法吗?此外,我还尝试将我的链接器行为从"仅链接SDK程序集"更改为"链接所有程序集",这在发布模式下也没有任何帮助。
只是一些其他信息,当我最初构建这个时,我也遇到了这个问题,并运行了下面的链接:
MvvvmCross无法在iPhone 上为EditingDidBegin创建目标绑定
所以我在下面添加了这个,它在很大程度上解决了我的问题,但导致了我现在的处境。
例如,包含一个文件https://github.com/slodge/NPlus1DaysOfMvvmCross/blob/master/N-38-Maps/Mappit.Touch/LinkerPleaseInclude.cs使用类似的方法
public void Include(UITextField textField)
{
textField.Text = textField.Text + "";
textField.EditingChanged += (sender, args) => { textField.Text = ""; };
textField.EditingDidBegin += (sender, args) => { textField.Text = ""; };
textField.EditingDidBegin -= (sender, args) => { textField.Text = ""; };
}
这是我的第一个应用程序,所以任何帮助都将不胜感激。希望这是我错过的一件容易的事情。
所以感谢PaulFarrow,但我在发布并添加到LinkerPleaseInclude的链接中做了如下操作,但也需要将其添加到中
public class LinkerIncludePlease
{
public void Include(UITextField textField)
{
textField.TextColor = textField.TextColor;
}
}