Bir UIWebView uygulamasında, metin seçiminin başlatıldığını veya bittiğini bildiren bildirimleri gözlemlemek için bir yöntem arıyorum. Pim ve mavi seçim bindirme göründüğünde, Javascript Seçim ve Aralığı nesnelerini otomatik olarak günceller, ancak seçimin dışına çıktığınızda ve bittiğinde, bildirim almanın temiz bir yolu yoktur.UIWebView'deki bildirimler metin seçiminin başladığını veya sonlandırdığını gördü?
6
A
cevap
1
Sadece javascript touchend
etkinliğine (veya Obj-C'de touchesEnded
) kilitlenip window.getSelection()
durumunu kontrol edebilirsiniz. Ayrıca javascript olayı selectionchange
da var.
Ben subviews arasında döngü aracılığıyla UIWebView seçiminin durumunu kontrol etmektir kullanmak başka yöntem:
- (bool) selectionInWebView:(UIWebView*)webView {
UIScrollView *scrollView = webView.scrollView; //assumes IO(6)? and scrollView is exposed. Loop subviews otherwise.
UIView *browserView;
for(int i = 0; scrollView.subviews.count; i++){
if([NSStringFromClass([scrollView.subviews[i] class]) isEqualToString:@"UIWebBrowserView"]){
browserView = scrollView.subviews[i]; break;
}
}
if(browserView == nil) return false;
for(int i = 0; browserView.subviews.count; i++){
if([NSStringFromClass([browserView.subviews[i] class]) isEqualToString:@"UIWebSelectionView"]){
//UIView *selectionView = browserView.subviews[i];
return true; //selection view exists, a selection is in progress
}
}
return false;
}
Ama en iyi seçenek seçimi durumunu kontrol ediyor dokunmatik uç olaylar yangın veya seçim değiştirme olayı yangınlar.
Bunu yaptığınız için teşekkür ederiz. – HalR