我试着在键盘上的“听写”按钮上放置一个假按钮,但是在iPad上,分割坞的概念不断地将麦克风移动到屏幕上。这听起来不是一个合理的解决方案。有什么专家可以帮助我吗?
解决方法 好吧,终于有了!诀窍是观察UITextinputMode更改通知,然后收集更改模式的标识符(代码似乎避免直接使用Private API,虽然似乎一般需要一些私人API知识),当模式更改时听写,resignFirstResponder(将取消语音听写)。好极了!这是一些代码:在你的应用程序代表的某个地方(至少这是我的地方)
[[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 4S /新iPad键盘上禁用听写按钮全部内容,希望文章能够帮你解决iPhone 4S /新iPad键盘上禁用听写按钮所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)