我正在制作 iOS 键盘扩展。
但是当我在 Safari Web 中单击按钮后执行以下代码时,代理(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:@"__________"];
});
如果我在adjustTextPositionByCharacterOffset之后将块放入另一个队列上的 dispatch_async 并有一些延迟。有用
但是,它也使我的代码在所有其他应用程序中变慢。
有什么好主意吗?或者有什么方法可以检测它是否是 Safari?