Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 键入时设置UITextField的文本会挂起然后使应用程序崩溃_C#_Objective C_Ios_Xamarin.ios - Fatal编程技术网

C# 键入时设置UITextField的文本会挂起然后使应用程序崩溃

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("

我正在创建一些动态控件,并尝试连接到EditingChanged事件,以便在用户键入时在某些UITextFields上附加一个百分号

代码如下

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的回答中:)谢谢你链接到我的博客。当我读到问题标题时,我想把它链接到这里,很好,它已经完成了!:)