iOS 9中如何隐藏自定义键盘扩展上方的工具栏

7
在iPad上的iOS 9中,有一个工具栏(称为快捷栏)位于键盘上方,提供撤销、重做和粘贴按钮。它出现在使用系统键盘或第三方键盘时,但不会出现在表情符号键盘上方。当使用我的自定义键盘扩展时,我不希望这个工具栏可见,因为我的键盘类似于表情符号键盘。(请注意,我谈论的是可以在任何应用程序中使用的自定义键盘扩展,而不是在您自己的应用程序中文本字段成为第一响应者时显示的键盘。)那么如何删除它?
1个回答

7
您可以使用以下方法将其删除
- (void)textFieldDidBeginEditing:(UITextField*)textField
{
    if(SYSTEM_VERSION_GREATER_THAN(@"8.4")){
        UITextInputAssistantItem* item = [textField inputAssistantItem];
        item.leadingBarButtonGroups = @[];
        item.trailingBarButtonGroups = @[];
    }
}

当然,您需要在头文件中定义宏SYSTEM_VERSION_GREATER_THAN来检查版本,因为此代码将在iOS 8上导致应用程序崩溃。
#define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)

玩得开心 :)


这是为了在您自己的应用程序中隐藏它(您还需要禁用自动更正才能隐藏它)。我的问题是如何将其隐藏在您的自定义键盘上方,以便可以在整个系统中使用。 - Jordan H
1
谢谢您的回答!我在自己的应用程序中遇到了这个问题,一直无法找到如何禁用它们,直到我发现了这个答案。 - BarrettJ
这段代码在8.4.1版本上会崩溃。请改用if ([textField respondsToSelector:@selector(inputAssistantItem)]) { - Wise Shepherd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接