inputmethodkit を使用して、テキストの下にウィンドウを配置しようとしています。
_currentClient はIMKTextInput
インスタンスです
候補はIMKCandidates
インスタンスです
// Get the current location to place the window
NSRect tempRect = NSMakeRect(0, 0, 0, 0);
NSDictionary* clientData = [_currentClient attributesForCharacterIndex:0 lineHeightRectangle:&tempRect];
NSPoint* windowInsertionPoint = (NSPoint*)[clientData objectForKey:@"IMKBaseline"];
...
[candidates setCandidateFrameTopLeft:*windowInsertionPoint];
[candidates showCandidates];
これで、windowInsertionPoint
変数に問題がないことがわかりました。デバッグすると、値が表示されます。たとえば、NSPoint: {647,365} です。
ただし、これを使用すると、候補ウィンドウが画面の左下隅に表示されます。私は前にものの画面配置を扱ったことがないので、助けていただければ幸いです。
に任意の静的な値を渡すとsetCandidateFrameTopLeft
、画面に配置されます。以下の作品:
[candidates setCandidateFrameTopLeft:NSMakePoint(401, 354)];
ポインターの問題ですか?