gpt4 book ai didi

cocoa - 显示系统键盘 Mac 应用程序?

转载 作者:行者123 更新时间:2023-12-03 17:44:22 24 4
gpt4 key购买 nike

如果在我的应用程序中选择了任何文本输入字段,我需要显示系统键盘。我似乎找不到任何有关如何执行此操作的资源。有什么建议吗?

编辑:我问这个问题是因为我正在制作一个全屏应用程序,需要根据用户选择显示/隐藏。

谢谢,
泰贾

最佳答案

您找不到该信息的原因是它是一个 C API,并且不在 Cocoa 中。您需要使用的API是Text Input Sources Services 。试试这个示例:

#import <Foundation/Foundation.h>
#import <Carbon/Carbon.h>

int main(){
NSAutoreleasePool*pool=[[NSAutoreleasePool alloc] init];
NSDictionary*property=[NSDictionary dictionaryWithObject:(NSString*)kTISTypeKeyboardViewer
forKey:(NSString*)kTISPropertyInputSourceType];
NSArray*tisArray=(NSArray*)TISCreateInputSourceList((CFDictionaryRef)property,NO);
// tisArray usually only contains just one keyboard viewer
// in a rare case the user might have another viewer installed, beware
TISInputSourceRef keyboardViewer=(TISInputSourceRef)[tisArray objectAtIndex:0];
TISSelectInputSource(keyboardViewer);
CFRelease((CFTypeRef)tisArray);
[pool drain];
return 0;
}

它是一个 Core Foundation 类型的 API,所以如果你了解 Cocoa,用法是类似的; Core Foundation 基本上是 NSObject 的 C API。大多数情况下,您可以使用免费桥接,请参阅 this SO question 。在垃圾收集环境中保留/释放它们时需要小心。 TIS在10.5中引入;我不知道为什么Apple当时没有将其作为Cocoa API引入。显然他们当时还没有下定决心处置 64 位 Carbon。

关于cocoa - 显示系统键盘 Mac 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3860256/

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