我有一个的UITextField,当文本被输入到这一点,我想从文本字段获得的doubleValue并进行一些计算和一个UITableView显示出来。

为的UITextField的委托采用UITextFieldDelegate协议,并同时实现了textFieldShouldReturn:和textFieldDidEndEditing:方法。 textFieldShouldReturn:辞职第一响应状态,而根据文档也应触发textFieldDidEndEditing :,但我从来没有看到textFieldDidEndEditing:称为

- (BOOL)textFieldShouldReturn:(UITextField*)theTextField {
    if (theTextField == thresholdValue) {
        [thresholdValue resignFirstResponder];
    }
    return YES;
}

- (void)textFieldDidEndEditing:(UITextField *)textField {
    [self updateThresholdValue:textField];
}

这可能是值得指出的是,我还尝试了一些文本字段的事件连接到代表和具有事件调用updateThresholdValue:直接,但没有任何工作

有帮助吗?

解决方案 3

由于在评论中提及了,我尝试复制什么,我试图用一个HelloWorld应用程序做一个简单的版本,它的工作的第一次尝试,没有任何问题,只是符合市场预期。与面对,我开始怀疑了一下。

某处在所有的谷歌搜索我所作的尝试得到一个回答这个问题时,我看到,当一个人在和事件不会从一个按钮发射问题的链接跑去,原来,这个问题是有关该视图中的按钮被放置并具有另一个子视图作为同行的按钮看法,并认为子视图莫名其妙地吃了事件,而不是让他们去的地方,他们会被导向。该方案是不完全和我一样,但它听起来足够接近,调查将是值得的。尽管在这里获得全优的建议,人还没有开花结果。

昨天晚上,我决定彻底重新从头开始创建笔尖文件(做什么,我必须首先复印件),我得到它的工作。关键的区别似乎是我在原来的非工作笔尖文件,我已经拖过从调色板中TableViewController,然后改变其类型设置为我的子类PZTableViewController。当我做我的新笔尖同样的事情,这些事件不火。如果,在另一方面,我删除了拖,在TableViewController,而是刚刚拖过的NSObject并改变了它的类PZTableViewController和管道连接起来的一切,一切“只是工作。”

我会尝试追逐这让我开始对这种思路的链接,并张贴无论是作为一个编辑或注释。

这也不是一个完整的答案,因为我还不了解来自该调色板TableViewController和我的子类之间的差别。当我明白这一点,我会更新通过编辑或评论这个答案。

其他提示

刚跑进你描述了同样的问题。乱投医我能想到的我后添加此委托方法:

// if we encounter a newline character return
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{   
    // enter closes the keyboard
    if ([string isEqualToString:@"\n"])
    {
        [textField resignFirstResponder];
        return NO;
    }
    return YES;
}

现在的textFieldShouldEndEditing火灾和文本字段辞职第一响应。

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
    [textField resignFirstResponder];
    return YES;
}

当文本字段辞职它的第一响应状态当按下返回按钮时textFieldShouldReturn烧制textFieldDidEndEditing进行烧成。

据的声音的喜欢你的文本字段是永远不会辞去firstResponder。你可以把一些调试输出(如在评论中所建议的),只是浏览了文本框的带触摸很容易地检查 - 比如开始输入,然后外面触及的领域,以迫使其辞职firstResponder

不知道这有很大帮助,但它听起来像是你打一个奇怪的情况。

我结束了接线,editingChanged记录到一个文本字段中的每一个变化,而不是考虑如何覆盖所有角落的情况下,其余的回调。

非常“高效”由于textFieldDidEndEditing(讽刺)。

的机器人状“可用性”

如果你通过 UITextFieldDelegate 在视图控制器协议,然后编写的代码下面的行中的 viewDidLoad中方法来激活上述方案的方法的对应的文本框:

override func viewDidLoad() {
    //other stuff
    yourTextField.delegate = self
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top