2011-08-22 7 views
1

TheTextView이라는 NSTextView가 있습니다. 거기에 텍스트 줄을 추가합니다. 각 줄은 파일 끝에있는 \n의 전체 경로를 나타냅니다. 텍스트 뷰는 not editable으로 설정됩니다. +- 버튼을 사용하여 텍스트를 추가하거나 제거합니다.NSTextView에서 텍스트 줄 삭제

사용자가 선을 선택하여 삭제할 수 있습니다. 나는 시도했다

[TheTextView delete:nil]; 

하지만 아무 일도 일어나지 않는다. 선택한 줄을 어떻게 삭제합니까? 우리가이 주제를 다루는 동안 한 줄을 클릭 할 때 전체 줄을 선택하도록 TextView를 설정할 수있는 방법이 있습니까?

감사

는 편집 :

확인, 그래서 나는 다음과 같은

[TheTextView setEditable:YES]; 
[TheTextView delete:nil]; 
[TheTextView setEditable:NO]; 

할 경우 다음 작동 것을 발견했다. 이제는 사용자가 클릭 할 때 전체 라인을 선택하는 방법을 알아야합니다. 그렇지 않으면 삭제 된 두 라인 사이에 빈 공간이 남을 것이기 때문입니다. 아이디어?

답변

2

[TheTextView delete:nil]으로 전화 할 때 텍스트가 선택되지 않은 것 같습니다. 범위가있는 setSelectedRange:을 호출하여 텍스트 줄을 선택한 다음 delete:을 호출 해보십시오. 예를 들면 다음과 같습니다.

[TheTextView setSelectedRange:NSMakeRange(0,24)]; 
[TheTextView delete:nil]; 

물론, 삭제할 텍스트에 해당하는 올바른 시작 및 길이를 결정해야합니다.

+0

감사합니다. 어떻게 setSelectedRange를 호출 할까? 미안하지만 나는 Obj-C의 완전한 초보자입니다. 저는 C 프로그래머입니다. –

+0

다음과 같이 시도했습니다 :'NSRange range = [TheTextView selectedRange]; [TheTextView setSelectedRange : range]; [TheTextView delete : nil];하지만 작동하지 않았습니다. –

+0

나는 그것을 어떻게 (정확한 시작과 길이를 결정하는지) 이해하려고 노력했지만, 선택된 텍스트를 얻고 간단한 strlen()을하는 방법을 모르기 때문에 나는 전혀 모른다. –

관련 문제