gpt4 book ai didi

iphone - 将语音添加到自定义 UIMenuController

转载 作者:可可西里 更新时间:2023-11-01 03:27:51 24 4
gpt4 key购买 nike

我在 UIWebView 中创建了一个自定义的 UIMenuController 但之后它似乎摆脱了 UIMenuController 中的“Speak Selection”选项.说话选择选项在所有测试设备的首选项中打开,它出现在其他应用程序中,包括非 Apple 应用程序。是否有辅助功能服务或 sharedMenuController 的一部分我可以调用以获取此项目?

UIMenuItem *copyMenuItem = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"Copy", @"Copy menu item") action:@selector(myappCopy:)];

UIMenuItem *highlightMenuItem = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"Highlight", @"Highlight menu option") action:@selector(myappHighlight:)];

UIMenuItem *unhighlightMenuItem = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"Remove Highlight", @"Remove Highlight menu option")
action:@selector(myappRemoveHighlight:)];

UIMenuItem *noteMenuItem = [[UIMenuItem alloc] initWithTitle:NSLocalizedString(@"Note", @"Note menu options") action:@selector(myappNote:)];

[UIMenuController sharedMenuController].menuItems = [NSArray arrayWithObjects:copyMenuItem, highlightMenuItem, unhighlightMenuItem, noteMenuItem, nil];

[copyMenuItem release];
[highlightMenuItem release];
[unhighlightMenuItem release];
[noteMenuItem release];

我什至尝试在开始时解析现有的共享菜单项,但我没有在日志中看到任何转储。该方法在应用启动时被调用。

在方法顶部试过这个:

    for (UIMenuItem *menuItem in [UIMenuController sharedMenuController].menuItems) {
NSLog(@"title: %@", menuItem.title);
NSLog(@"action: %@", menuItem.action);
}

非常感谢任何帮助!谢谢 - 埃里克

最佳答案

我发现这个错误有一些有趣的地方。基本上,当启用说话选择时,在您做出第一个选择后,UIMenuController 将清空 menuItems。解决方案虽然很老套,但很简单。

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender {
NSString *selectorString = NSStringFromSelector(action);
BOOL isAccessibilitySelector = [selectorString isEqualToString:@"_accessibilitySpeak:"] || [selectorString isEqualToString:@"_accessibilityPauseSpeaking:"];
if (isAccessibilitySelector && [super canPerformAction:action withSender:sender]) {
//(re)add menuItems to UIMenuController
return YES;
}
return NO;

我应该注意,您必须在 canPerformAction...() 被调用后重新添加 menuItems

我已将其提交为雷达:12931434。更新:DUP'ed to 13060693 .

关于iphone - 将语音添加到自定义 UIMenuController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9879956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com