문제

사용자가 WebView에서 일부 텍스트를 선택할 수있는 기능을 구현하려고합니다. 마우스 버튼을 출시 한 후, 사용자가 선택한 텍스트에서 일부 작업을 수행 할 수 있도록 작은 창이 팝업됩니다.

그러나 마우스 버튼을 풀어서 더 나은 단어가 없기 때문에 사용자의 선택이 "확인"시기를 결정하는 데 약간의 문제가 발생합니다. 그만큼 WebEditingDelegate 비공식 프로토콜을 정의합니다 -webViewDidChangeSelection: 방법이지만 선택이 전혀 변경 될 때마다 호출됩니다. 예를 들어, 사용자가 전체 라인에서 드래그하면 -webViewDidChangeSelection: 선택한 범위가 변경 될 때마다 한 번만 호출됩니다. 분명히, 이것은 드래그 과정에서 여러 번 창문을 튀어 나오기 때문에 작동하지 않습니다.

내가 필요한 것을 달성하는 방법을 아는 사람이 있습니까?

도움이 되었습니까?

해결책

최종 이벤트가 너무 좁을 때 "마우스 업"에 초점을 맞추고 있다고 생각합니다. 예를 들어, 사용자가 클릭 한 다음 Shift-Arrow 키로 텍스트를 선택하면 어떻게됩니까? 이 경우 소프트웨어가 동일한 효과를 가져서는 안됩니까?

거의 알려지지 않은 제안이 방정식의 마우스 부분에 합리적으로 들리지만, 선택이 마우스에서 변경 될 때 마우스가 올라갈 때 최종 "선택이 변경 될 수 없을 것입니다.

따라서 순수한 Nstimer 지연 으로이 문제에 접근 할 것입니다. 웹보기에서 "선택 변경"을 얻을 때마다 Nstimer를 재설정하십시오. 0.5 초와 같이 짧은 경과 시간에 도달하면 창문을 올리거나 움직입니다.

타이머 만료시 마우스가 여전히 다운되어 있는지와 같은 기준을 검사하여 이것을 미세 조정할 수 있습니다. 마우스가 다운되면 타이머를 잠시 연기하고 다른 반 초 정도 후에 마우스가 들어 올렸는지 확인할 수 있습니다.

다른 팁

동일한 방법을 사용할 수 있지만 마우스가 다운되어 있지 않은지 테스트하면 마우스가 다운되지 않은 경우 방금 풀려 났다고 가정하고 창을 보여주십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top