以编程方式模拟UITextField键盘的返回按键

时间:2014-06-12 13:22:29

标签: ios objective-c uitextfield

有没有办法以编程方式模拟按下“返回”键,例如当用户按下返回键时,调用由UITextField / UIKeyboard /调用的函数?

我知道调用例程textFieldShouldReturn中的某个地方,但我认为这不是唯一发生的事情吗?我简单介绍了调试器,似乎按下“返回”键会调用多个函数。

我正在寻找的是一种拥有UITextField子类的方法,在这个子类中,我可以调用类似[self.inputview returnKeyPressed]的东西,这个函数将完全像用户按下时那样发生在返回键上。

4 个答案:

答案 0 :(得分:3)

(对于任何希望将来实现这一目标的程序员)

你可以通过在你希望的任何功能中添加它来实现这一点,并且模拟"按回车键。

    [self textFieldShouldReturn:yourTextFieldName];

您需要在viewdidload中设置文本字段委托:

[youtTextFieldName setDelegate:self];

答案 1 :(得分:2)

我认为我要做的是实现textFieldDidEndEditing: UITextFieldDelegate方法,并实现文本字段结束编辑(保存等)时需要发生的所有事情。然后你需要为你的按钮做的就是调用一个方法来实现代码,告诉文本字段辞职第一响应者。

执行此操作,您将拥有一种方法来处理文本字段应该结束编辑的两种方法。

答案 2 :(得分:2)

根据:This Previous Question

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];