iOSキーボード拡張機能を作っています。
しかし、Safari Web でボタンをクリックした後に次のコードを実行すると、proxy( UITextDocumentProxy
) が停止しました。
[self.textDocumentProxy adjustTextPositionByCharacterOffset:-5];//stop here
for (int i = 0; i < 10; i ++) {
[self.textDocumentProxy deleteBackward];
}
[self.textDocumentProxy insertText:@"__________"];
safari-top-search-bar では問題なく動作しますが、他のプレーン テキスト ボックスで停止します。
dispatch_queue_t myQueue = dispatch_queue_create("com.test.online",0);
dispatch_async(myQueue, ^{
[self.textDocumentProxy adjustTextPositionByCharacterOffset:-5];
[NSThread sleepForTimeInterval:0.1];
for (int i = 0; i < 10; i ++) {
[self.textDocumentProxy deleteBackward];
}
[self.textDocumentProxy insertText:@"__________"];
});
ブロックを別のキューの dispatch_async に入れた場合、adjustTextPositionByCharacterOffsetの後に多少の遅延があります。できます
ただし、他のアプリ全体でもコードが遅くなります。
何か良いアイデアはありますか?またはSafariかどうかを検出する方法はありますか?