6

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

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

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

4

1 回答 1

5

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

我相信如果你让成为第一响应者的视图接受键盘输入,你想要的在 iOS 3.2+ 中是可能的。你可以通过让你的视图类采用UIKeyInput协议来做到这一点:

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

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

于 2010-11-26T10:59:19.153 回答