在没有隐藏键盘的情况下成为第一个响应者

时间:2010-11-26 06:25:00

标签: iphone ipad ios first-responder

我有一个支持复制的视图,并使用以下代码显示编辑菜单:

if ([self becomeFirstResponder]) {
    // bring up edit menu.
    UIMenuController *theMenu = [UIMenuController sharedMenuController];
    [theMenu setTargetRect:[self _textRect] inView:self];
    [theMenu setMenuVisible:YES animated:YES];
}

问题是,当调用becomeFirstResponder时,键盘会被隐藏。 SMS应用程序中正确行为的一个很好的例子。在回复框可见时双击消息,回复框失去焦点,但键盘保持原位。此外,当取消选择气泡时,回复框会重新获得焦点。

1 个答案:

答案 0 :(得分:5)

不幸的是,Apple可以做很多第三方应用无法使用的事情。

如果您使视图成为第一个响应者接受键盘输入,我相信你想要的在iOS 3.2+中是可能的。您可以通过让您的视图类采用UIKeyInput protocol

来实现
  

UIResponder的子类可以采用此协议来实现简单的文本输入。当此子类的实例是第一个响应者时,将显示系统键盘。

该协议包含3个必须实现的必需方法。在您的情况下,您可能会将您在这些方法中收到的输入应用于文本字段,并再次将其作为第一个响应者。我没试过,但它应该有用。