私は、ユーザ入力を得るためのテキストフィールドを持つウィンドウと、キーボードビューアを表示するための小さなキーボードアイコンボタンを備えたココアアプリを作成しました。ユーザーが[OK]または[キャンセル]ボタンをクリックして終了すると、キーボードビューアを非表示にします。次のように私がやったことです:キーボードビューアをMac OS Xでプログラミングする
//action for keyboard-icon button
-(IBAction)input:(id)sender
{
[self toggleKeyboard:YES];
}
//action for Cancel button
-(IBAction)cancel:(id)sender
{
[self toggleKeyboard:NO];
[NSApp abortModal];
[[self window] orderOut: self];
}
//action for OK button
-(IBAction)ok:(id)sender
{
[self toggleKeyboard:NO];
[NSApp stopModal];
[[self window] orderOut: self];
}
-(void)toggleKeyboard:(BOOL)show
{
NSDictionary *property = [NSDictionary dictionaryWithObject:(NSString*)kTISTypeKeyboardViewer
forKey:(NSString*)kTISPropertyInputSourceType];
NSArray *sources = (NSArray*)TISCreateInputSourceList((CFDictionaryRef)property, false);
TISInputSourceRef keyboardViewer = (TISInputSourceRef)[sources objectAtIndex:0];
if (show == YES)
{
TISSelectInputSource(keyboardViewer);
}
else
{
TISDeselectInputSource(keyboardViewer);
}
CFRelease((CFTypeRef)sources);
}
私が正常にキーボードビューアを起動することができますが、それはすべての回でTISDeselectInputSourceで非表示にすることができません。助けてください!!!
Mac OSで表示されている「キーボードビューア」は、iOSのポップアップキーボードと同じ方法で使用することは意図されていません。プログラムから簡単に取り除くことはできません。誰ももっと良い解決策が出てこない人は、Apple EventsやApple Scriptを使って解雇する方法を少し調べるかもしれません。 –
こんにちはマイケル、私はちょうどMac OS上でオープンソースの仮想キーボードやそれを実装する方法についてのドキュメントを見つけることができません。私はNSAppleScriptクラスを使用して、applescriptメソッド([this](http://patjack.co.uk/toggle-keyboard-viewer-in-snow-leopard-10-6/)を参照してください)を試しましたが、動作しません。本当にうまく動作しているアプリスクリプトをここにあげてもらえますか?またはココアで仮想キーボードを実装する方法に関するいくつかの提案?ありがとうございます! – leochou0729
@ leochou0729:仮想キーボードを表示しようとする特別な理由はありますか? –