gpt4 book ai didi

iphone - 禁用 iPhone 4S/new iPad 键盘上的听写按钮

转载 作者:IT王子 更新时间:2023-10-29 08:05:28 26 4
gpt4 key购买 nike

我们的是一款医疗保健应用程序。我们的应用程序中有一个符合 HIPAA 标准的语音识别器,所有的听写都可以通过它进行。医院不希望医生不小心开始与不符合 HIPAA 标准的 Nuance Dragon 服务器通话。因此,我一直在寻找可以抑制键盘上的听写键的方法。

我尝试在键盘上的“听写”按钮上放置一个假按钮,但在 iPad 上,拆分底座概念一直在整个屏幕上移动麦克风。这听起来不像是一个合理的解决方案。有没有专家可以帮助我?

最佳答案

OK,终于搞定了!诀窍是观察 UITextInputMode 更改通知,然后收集更改模式的标识符(代码似乎避免直接使用私有(private) API,但通常似乎需要一点私有(private) API 知识),以及模式何时更改听写,resignFirstResponder(这将取消语音听写)。耶!这是一些代码:

在你的 app delegate 中的某个地方(至少我把它放在那里)

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(inputModeDidChange:) name:@"UITextInputCurrentInputModeDidChangeNotification"
object:nil];

然后你就可以

UIView *resignFirstResponder(UIView *theView)
{
if([theView isFirstResponder])
{
[theView resignFirstResponder];
return theView;
}
for(UIView *subview in theView.subviews)
{
UIView *result = resignFirstResponder(subview);
if(result) return result;
}
return nil;
}

- (void)inputModeDidChange:(NSNotification *)notification
{
// Allows us to block dictation
UITextInputMode *inputMode = [UITextInputMode currentInputMode];
NSString *modeIdentifier = [inputMode respondsToSelector:@selector(identifier)] ? (NSString *)[inputMode performSelector:@selector(identifier)] : nil;

if([modeIdentifier isEqualToString:@"dictation"])
{
[UIView setAnimationsEnabled:NO];
UIView *resigned = resignFirstResponder(window);
[resigned becomeFirstResponder];
[UIView setAnimationsEnabled:YES];

UIAlertView *denyAlert = [[[UIAlertView alloc] initWithTitle:@"Denied" message:nil delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil] autorelease];
[denyAlert show];
}
}

关于iphone - 禁用 iPhone 4S/new iPad 键盘上的听写按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11105058/

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