有没有办法以编程方式模拟按下“返回”键,例如当用户按下返回键时,调用由UITextField / UIKeyboard /调用的函数?
我知道调用例程textFieldShouldReturn
中的某个地方,但我认为这不是唯一发生的事情吗?我简单介绍了调试器,似乎按下“返回”键会调用多个函数。
我正在寻找的是一种拥有UITextField子类的方法,在这个子类中,我可以调用类似[self.inputview returnKeyPressed]
的东西,这个函数将完全像用户按下时那样发生在返回键上。
答案 0 :(得分:3)
(对于任何希望将来实现这一目标的程序员)
你可以通过在你希望的任何功能中添加它来实现这一点,并且模拟"按回车键。
[self textFieldShouldReturn:yourTextFieldName];
您需要在viewdidload中设置文本字段委托:
[youtTextFieldName setDelegate:self];
答案 1 :(得分:2)
我认为我要做的是实现textFieldDidEndEditing: UITextFieldDelegate方法,并实现文本字段结束编辑(保存等)时需要发生的所有事情。然后你需要为你的按钮做的就是调用一个方法来实现代码,告诉文本字段辞职第一响应者。
执行此操作,您将拥有一种方法来处理文本字段应该结束编辑的两种方法。
答案 2 :(得分:2)
ProcessSerialNumber psn;
GetFrontProcess( &psn );
// make some key events
CGEventRef keyup, keydown;
keydown = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)76, true);
keyup = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)76, false);
// forward them to the frontmost app
CGEventPostToPSN (&psn, keydown);
CGEventPostToPSN (&psn, keyup);
// and finally behave friendly
CFRelease(keydown);
CFRelease(keyup);
您可以在/System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h
答案 3 :(得分:0)
这是一个非常古老的话题,但是这种情况仍然有用,所以我在回答
如果并且我强调您对大IF的关注,那么您需要的是背后按下回车键的逻辑,那么假设您已将文本字段的代表钩在某个地方,我认为这很简单。
您需要做的就是在文本字段的委托上自己调用该方法
[textfield.delegate textFieldShouldReturn];