2015-11-04 56 views
3

我正在構建一個Xamarin ios應用程序,並且已經測試了一段時間,但遇到了在發佈模式下測試的問題。當用戶開始在文本框中輸入答案時,我會更改文本框的背景顏色和文本顏色。這裏是我的代碼:Mvvmcross:無法爲綁定TextColor創建目標綁定

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無法創建目標結合TEXTCOLOR爲AnswerTextColor

結合

在發佈模式下,它看起來沒有工作,或者因爲我的文本顏色保持白色,所以我的假設是我也得到了相同的錯誤/警告。有任何想法嗎?此外,我嘗試將鏈接器行爲從「僅鏈接SDK組件」更改爲「鏈接所有程序集」,並且這對發佈模式也沒有幫助。

就在我最初建這個我有這個問題,也是和整個下面的鏈接進行了一些其他信息:

MvvmCross Failed to create target binding for EditingDidBegin on iPhone

所以我說這低於固定我的大部分問題,但導致到我現在所在的地方。

例如包括像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 = ""; }; 
} 

這是我的第一個應用程序,所以任何幫助,將不勝感激。希望這是我錯過的一件容易的事情。

+0

是否當你添加NativeColorConverter它的工作到LinkerPleaseInclude.cs? – Wosi

+0

我不知道我明白。你能提供一個例子嗎? –

+0

您將NativeColorConverter稱爲字符串。也許鏈接器刪除這個類。所以你應該添加一些新的NativeColorConverter()到Include方法,以防止鏈接器忽略該類。我不知道它是否能解決你的問題。 – Wosi

回答

5

所以感謝PaulFarrow在這一個,但我一樣跟着我張貼的鏈接,並添加到LinkerPleaseInclude,而是把它添加到它,以及需要

public class LinkerIncludePlease 
{ 
    public void Include(UITextField textField) 
    { 
     textField.TextColor = textField.TextColor; 
    } 
}