Ios 检测自定义键盘扩展中的输入对象视图类型

Ios 检测自定义键盘扩展中的输入对象视图类型,ios,objective-c,ios8,ios-app-extension,custom-keyboard,Ios,Objective C,Ios8,Ios App Extension,Custom Keyboard,我正在使用iOS 8中的应用程序扩展开发自定义键盘 我有一个返回键,按下时我想检查输入对象是否是UITextView,然后使用以下代码移到下一行:[self.textDocumentProxy insertText:@“\n”]。如果输入对象是UITextField,则按如下方式关闭键盘:[自行关闭键盘] 大概是这样的: - (void) returnKeyPressed { if (inputObjectIsTextView) { [self.textDocum

我正在使用iOS 8中的应用程序扩展开发自定义键盘

我有一个返回键,按下时我想检查输入对象是否是
UITextView
,然后使用以下代码移到下一行:
[self.textDocumentProxy insertText:@“\n”]。如果输入对象是
UITextField
,则按如下方式关闭键盘:
[自行关闭键盘]

大概是这样的:

- (void) returnKeyPressed
{
    if (inputObjectIsTextView)
    {
        [self.textDocumentProxy insertText:@"\n"];
    }
    else if (inputObjectIsTextField)
    {
        [self dismissKeyboard];
    }
}

问题是:如何检测当前正在编辑的输入视图类型?

尝试类似操作,将活动视图的引用作为“inputViewObject”,然后重试

- (void) returnKeyPressed
{

    if (inputViewObject.class==[UITextView class])
    {
        [self.textDocumentProxy insertText:@"\n"];
    }
    else if (inputViewObject.class==[UITextField class])
    {
        [self dismissKeyboard];
    }
}

希望能有所帮助。

您不能这样做,如果您查看文档,您会发现没有用于检测键盘扩展文本输入对象的公共API

从医生那里。 由于自定义键盘只能在其
UIInputViewController
对象的主视图中绘制,因此无法选择文本。文本选择由使用键盘的应用程序控制。如果该应用程序提供编辑菜单界面(如剪切、复制和粘贴),键盘将无法访问该界面


我认为这也意味着您无法从使用键盘扩展名的应用程序访问文本输入对象。

无需检测输入视图是否为
UITextField
UITextView
,以输入新行

如标题“自定义键盘的API快速入门”所述

这意味着不需要检测,你可以这样做

- (void) returnKeyPressed
{
    [self.textDocumentProxy insertText:@"\n"];
}
如果inputView是
UITextView
,将执行此命令;如果输入类型是
UITextField
,则不执行此命令


我已经创建了一个键盘并测试了它,然后将其发布到这里。

对不起,我不太理解你的建议。你能详细解释一下吗?谢谢
- (void) returnKeyPressed
{
    [self.textDocumentProxy insertText:@"\n"];
}