gpt4 book ai didi

ios - 为什么 textFieldDidEndEditing : not being called?

转载 作者:技术小花猫 更新时间:2023-10-29 10:35:26 31 4
gpt4 key购买 nike

我有一个 UITextField,在其中输入文本时,我想从文本字段中获取 doubleValue 并执行一些计算并将它们显示在 UITableView 中。

UITextField 的委托(delegate)采用 UITextFieldDelegate 协议(protocol),并实现了 textFieldShouldReturn: 和 textFieldDidEndEditing: 方法。 textFieldShouldReturn:辞去第一响应者状态,根据文档,这也应该触发 textFieldDidEndEditing:,但我从未看到 textFieldDidEndEditing:被调用。

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

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

可能值得注意的是,我还尝试将一些文本字段事件连接到委托(delegate)并让事件调用 updateThresholdValue: 直接,但这也没有用。

最佳答案

刚遇到您描述的相同问题。在尝试了所有我能想到的方法之后,我添加了这个委托(delegate)方法:

// 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;
}

关于ios - 为什么 textFieldDidEndEditing : not being called?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1228298/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com