无法从textFieldDidBeginEditing调用resignFirstResponder? (苹果手机)

时间:2010-04-18 23:15:05

标签: iphone uitextfield first-responder

[myTextField becomeFirstResponder];
[myTextField resignFirstResonder];

当我这样做-(BOOL)textFieldShouldReturn:(UITextField *)textField时,它有效。但是当我在-(void)textFieldDidBeginEditing:(UITextField *)textField中使用相同的代码时,它不起作用。

我确信它正在调用textFieldDidBeginEditing。我在方法中有NSLog并且正在调用它。

2 个答案:

答案 0 :(得分:7)

这是几年前,但需要相同的东西,这个答案在我的搜索结果的顶部,我最终玩了,并提出了这个:

[myTextField performSelector:@selector(resignFirstResponder)
                  withObject:nil
                  afterDelay:0
 ];

答案 1 :(得分:5)

在重新签名firstResponder状态之前,textField会回调自己的-canResignFirstResponder方法,如果textField当前处于编辑会话中,则会返回NO。如果要阻止编辑会话开始,可以实现-textFieldShouldBeginEditing:委托方法返回NO