2011-10-13 30 views
1

在iOS中,有什麼方法可以編寫在系統即將在UIWebView上顯示文本選擇控件時調用的代碼?檢測即將發生的文本選擇

我需要一些我的代碼在用戶想要選擇某些內容時調用,但在選擇實際添加到頁面之前,如果可能的話。

回答

0

我找到了解決方法,使用延遲方法調用。選擇控件不會立即顯示,而只會在您點按某些文本約半秒鐘後纔會顯示。

這裏是我以前做的代碼的一個大致的輪廓:

//in the view controller header declare a boolean 
    BOOL _confirmUserIsSelectingText; 

//in onTouchBegan 
    _confirmUserIsSelectingText = YES; 
    [self performSelector:@selector(textSelectionWillAppear:) withObject:nil afterDelay:0.3f]; 

//in onTouchMoved 
    _confirmUserIsSelectingText = NO; 

//in onTouchEnded 
    _confirmUserIsSelectingText = NO; 

//then define textSelectionWillAppear:  
- (void)textSelectionWillAppear:(id)ignoreMe 
{ 
    //do whatever it is you need to happen before the selection controls appear 
} 

不是最好的解決辦法,但在我的情況下工作。如果textSelectionWillAppear需要更多時間運行,則延遲可以調整,但我認爲延遲不應該太接近0.5f,否則在出現選擇框之前實際上可能不會調用該方法。