2011-10-13 4 views
1

UIWebView에서 텍스트 선택 컨트롤을 표시하려고 할 때 호출되는 코드를 작성하는 방법이 있습니까?수행 할 텍스트 검색 선택

사용자가 무언가를 선택하려고 할 때 호출 할 코드가 필요하지만 가능한 경우 실제로 선택이 페이지에 추가되기 전에 필요합니다.

답변

0

지연된 메서드 호출을 사용하여이 문제를 해결할 수있는 방법을 발견했습니다. 선택 컨트롤은 즉시 나타나지 않지만 약 0.5 초 동안 텍스트를 누른 채로 있어야만 선택 컨트롤이 나타납니다.

는 여기에 내가 그렇게하는 데 사용되는 코드의 대략적인 개요입니다 :

//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에 너무 가까워서는 안되며 선택 상자가 나타나기 전에 메서드가 실제로 호출되지 않을 수도 있습니다.