C# 键入时设置UITextField的文本会挂起然后使应用程序崩溃
我正在创建一些动态控件,并尝试连接到EditingChanged事件,以便在用户键入时在某些UITextFields上附加一个百分号 代码如下C# 键入时设置UITextField的文本会挂起然后使应用程序崩溃,c#,objective-c,ios,xamarin.ios,C#,Objective C,Ios,Xamarin.ios,我正在创建一些动态控件,并尝试连接到EditingChanged事件,以便在用户键入时在某些UITextFields上附加一个百分号 代码如下 infoCaptureTextBox.EditingChanged += delegate (object sender, EventArgs e) { UITextField _thisTextBox = (UITextField)sender; string txtValue = _thisTextBox.Text.Replace("
infoCaptureTextBox.EditingChanged += delegate (object sender, EventArgs e) {
UITextField _thisTextBox = (UITextField)sender;
string txtValue = _thisTextBox.Text.Replace("%", "");
int numValue = 0;
if(int.TryParse(txtValue, out numValue)) {
if(infoCaptureField.InputType == "pc")
_thisTextBox.Text = numValue.ToString() + "%";
}
else {
infoCaptureTextBox.Text = "0";
}
};
当然,在您按下某个键时,应用程序会挂起约15-20秒,然后在应用程序输出窗口中没有任何内容的情况下崩溃
设置UITextField
的Text
属性是正确的方法,还是需要使用其他方法/属性
我已经标记了obj-c,以防来自该社区的人知道问题可能是什么
提前感谢peeps,这让我抓狂。修改EditingChanged方法中的内容(使其自身重新输入)可能会导致堆栈溢出 尝试改用Editingeded事件,该事件在控件退出其第一响应程序状态时引发
如果需要按用户类型执行此操作,请尝试改用ShouldChangeCharacters事件。这两种方法都是从UITextFieldDelegate中键入的,而不是使用中央通知系统,应该可以解决此问题。您可能会通过修改EditingChanged方法中的内容(使其自身重新输入)导致堆栈溢出 尝试改用Editingeded事件,该事件在控件退出其第一响应程序状态时引发
如果需要按用户类型执行此操作,请尝试改用ShouldChangeCharacters事件。这两个都是从UITextFieldDelegate上键入的,不要使用中央通知系统,应该可以解决这个问题。将错误的标签从
c#
改为iPhone
@robin-MonoTouch是c#,所以我把标签放回原处,将错误的标签从c#
改为iPhone
@robin-MonoTouch是c#,所以我把标签放回原处,我认为你是对的@Geoff-你的回答让我看到了这篇优秀的文章,也许可以把它添加到你对未来MonoTouch的回答中:)谢谢你链接到我的博客。当我读到问题标题时,我想把它链接到这里,很好,它已经完成了!:)我认为你是对的@Geoff-你的回答让我看到了这篇优秀的文章,也许可以将它添加到你对未来MonoTouch ers的回答中:)谢谢你链接到我的博客。当我读到问题标题时,我想把它链接到这里,很好,它已经完成了!:)