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

Chr*_*ris 1 iphone uitextfield first-responder

[myTextField becomeFirstResponder];
[myTextField resignFirstResonder];
Run Code Online (Sandbox Code Playgroud)

当我这样做时-(BOOL)textFieldShouldReturn:(UITextField *)textField,它的工作原理.但是当我在里面使用相同的代码时-(void)textFieldDidBeginEditing:(UITextField *)textField,它不起作用.

我确信这是在呼唤textFieldDidBeginEditing.我有一个NSLog方法内部,它被调用.

小智 7

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

[myTextField performSelector:@selector(resignFirstResponder)
                  withObject:nil
                  afterDelay:0
 ];
Run Code Online (Sandbox Code Playgroud)


jle*_*ehr 5

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