0

这就是我所拥有的:

while(wordList){                  //wordlist is instance of NSArray containing NSStrings
    word.text = [wordList objectAtIndex:x]; //word is instance of UILabel

    //LOOKING TO PLACE WAIT CODE HERE TO WAIT FOR "DID END ON EXIT"

    input = inputBox.text; //input is instance of UITextField

    [self compare:input andb:word.text]; //compare is an instance method to compare the two strings
    x++;
}

我是初学者,如果有人能帮助我,那就太好了。

最好的... SL

4

2 回答 2

0

这是你想要的?:

[yourTextField addTarget:self 
                action:@selector(yourMethod:)
                forControlEvents:UIControlEventEditingDidEndOnExit];

编辑

为什么不直接中断while循环并在用户点击next时调用一个单独的方法呢?无需暂停并触发其他方法。

于 2012-07-22T16:43:13.560 回答
0

你问的方法是行不通的。如果您的应用程序要在方法中间暂停执行,什么会导致它取消暂停?

用户不会在循环中间输入文本——这必须在循环开始执行之前已经完成。触发包含@Imirak 建议的循环的方法,或者从其他一些用户交互,例如按下按钮。这样您就知道用户已经输入了文本,并且您编写的代码应该可以按预期工作。

不过请注意:您显示的代码不会检查您的compare:andb:方法的返回值。您还没有真正提供足够的信息来说明您希望该方法做什么来确定这是否有意义。

wordList此外,您的循环控制逻辑不正确 - 正如所写的那样,它要么是一个无限循环,要么永远不会进入,具体取决于nil. 考虑使用快速枚举语法而不是编写while循环,例如:

for (UILabel *currLabel in wordList)
{
    // It appears as though this may be the comparison you want to do
    // but there's not enough context in your question to be sure.
    //
    if ([inputBox.text isEqualToString:currLabel.text])
    {
        // Do something here. Again, it's not clear what you're trying to do.   
    }
}
于 2012-07-22T17:21:23.033 回答