Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UIKeyboardWillHideNotification和TextFieldDiEndediting_Iphone_Objective C_Ios_Ipad_Uitextfield - Fatal编程技术网

Iphone UIKeyboardWillHideNotification和TextFieldDiEndediting

Iphone UIKeyboardWillHideNotification和TextFieldDiEndediting,iphone,objective-c,ios,ipad,uitextfield,Iphone,Objective C,Ios,Ipad,Uitextfield,在我的一个项目中,当显示键盘并按下“完成”按钮时,首先调用TextFieldDiEndediting,然后它将触发UIKeyboardWillHideNotification的目标函数。然而,在我的另一个项目中,情况正好相反(通知功能,然后是TextFieldDiEndediting,这就是我想要的)。为什么会这样?两者都在iOS模拟器v上进行了测试。5.1. 如何确保一个在另一个之前被调用?为什么不使用 - (BOOL)textFieldShouldReturn:(UITextField *)

在我的一个项目中,当显示键盘并按下“完成”按钮时,首先调用TextFieldDiEndediting,然后它将触发UIKeyboardWillHideNotification的目标函数。然而,在我的另一个项目中,情况正好相反(通知功能,然后是TextFieldDiEndediting,这就是我想要的)。为什么会这样?两者都在iOS模拟器v上进行了测试。5.1. 如何确保一个在另一个之前被调用?

为什么不使用

- (BOOL)textFieldShouldReturn:(UITextField *)textField

要捕获正在按下的完成键或返回键?

请在.h和.m中设置UITextFieldDelegate:

[self.myTextField setdelegate:self];

我已经在用这个了。。但在此之前,将首先触发UIKeyboardWillHideNotification选择器/目标is函数,然后触发TextFieldDidendDismission。我只是不明白是什么导致了UIKeyboardWillHideNotification是一种通知而不是一种方法。您需要将类设置为侦听器,然后在发送通知时触发选择器。使用委托方法textFieldShouldReturn的优点(在本例中)是将TextField传递到委托方法中,这样您就可以确切地知道是哪个TextField导致它被激发。通过该通知,您只需知道任何类型的控件都会导致键盘隐藏。在
.h
中,设置委托。在
.m
中,将该行放入
viewDidLoad