초기화 할 때 setContinuousSpellCheckingEnabled(true)
으로 자동 맞춤법 검사를 설정하고 초점을 맞추면 NSTextView를 상속 한 클래스가 첫 번째 응답자로 설정됩니다. 지금까지 본 모든 질문과 답변을 바탕으로 맞춤법 검사기가 올바르게 작동하는지 확인하기에 충분해야합니다.NSTextView 자동 맞춤법 검사가 제대로 작동하지 않습니다.
그러나보기에 횡설수설을 입력하면 비교적 빨리 단어를 입력하지 않는 한 맞춤법이 틀린 단어에 밑줄이 표시되지 않습니다. 즉, "asdf"라고 입력하면 약 30 분의 1 초 안에 공백을 넣고 맞춤법 검사기가 제대로 밑줄을 긋습니다. 그러나 "asdf"를 더 느리게 입력하거나 "asdf"를 빠르게 입력했지만 공백을 추가하기 전에 잠시 기다리더라도 단어에 밑줄이 표시되지 않습니다.
이렇게하면 아래와 같이 철자가 일치하지 않는 단어가 여러 번 입력 될 수 있습니다. 나는 빨간색 밑줄이 순식간에 게재 한 다음 바로 내가 입력했던 맞춤법이 틀린 단어에서 사라 본 곳
은 테스트 동안도 한 번 있었다.또한 주목할 가치가있는 점은 포커스가 사라지고 텍스트 뷰에 다시 들어가면 포커스가 약 1 초 후에 모든 구불 구불 한 밑줄이 모든 철자가 틀린 단어 아래 올바른 지점에 나타납니다. 그러나 추가 텍스트를 입력하면 앞서 언급 한 문제가 발생합니다.
이 그들은 신속하게 부당 그들은 전에보기
를 중심으로 텍스트 뷰에 입력했다를 입력하는
하지 않는 맞춤법이 틀린 단어에 밑줄되지 않음을 의미
앞서 모든 관련 SO 스레드를 살펴본 후에
makeFirstResponder()
및에 대한 호출을 수행했습니다.은 광범위하게 사용되며 아이디어가 부족합니다.지난 주부터 몇 가지를 시도해 보았습니다. 그 중 하나가 약속을 보여줍니다. TextView 함수
setSpellingState
을 사용하면 프로그래밍 방식으로 빨간색 구불 구불 한 밑줄을 TextView 내의 아무 곳에 나 표시하도록 할 수 있습니다. 이것이 유망 해 보이지만,이 함수를 사용하면 대신 다른 버그가있는 동작을 발견했습니다.이 함수를 호출하고보기에 빨간색 구불 구불 한 모양을 표시하면 구불 구불 한 선이 잠시 표시됩니다. 구불 구불 한 빨간 밑줄이 나타나고, "asdf"버그를 본 것과 대략 같은 양의 지연 후에, 구불 구불 한 선이 사라집니다. 이 문제는 Cocoa API 중 일부를 오버라이드하는 C# 코드에서 문제가 발생할 수 있다고 생각하게합니다.이 문제는 OSX입니까? 왜 맞춤법 검사기가 단어에 밑줄을 긋게되는지를 결정하는 요소를 입력하는 속도가 무의미한 이유는 무엇입니까?
P. 이 코드는 Cocoa API 용 랩퍼를 생성하는 도구 인 MCocoa를 사용하기 때문에 Objective-C 구문과 다른 구문으로되어 있습니다. 현재 NSTextView를 참조하기 위해 사용하고있는 C# 코드는 MacOSX 10.5 SDK에서 생성되었습니다.