2009-12-23 6 views
12

NSTextView에 여백/왼쪽 여백을 어떻게 부여 할 수 있습니까? NSTextField에서 NSTextFieldCell을 하위 클래스 화하는 방법에 대해 알고 있지만 NSTextView에서는 어떻게 작성합니까?NSTextView에 여백/여백을 부여합니다.

EDIT : A bit more info : 1. Text View는 텍스트가 풍부하고 일반 텍스트 편집기 (예 : Paragraph insets)와 같은 멋진 텍스트가 없습니다. 2. setTextContainerInset :을 사용할 수 있습니까?

답변

16

NSTextView의 서브 클래스를 찾아보고 textContainerOrigin을 무시할 수 있습니다.

세부 사항 here.

예를 들어이 서브 클래스는 그냥이에 업데이트를 추가 할 10

@implementation MyTextView 

- (void)awakeFromNib { 
    [super setTextContainerInset:NSMakeSize(15.0f, 5.0f)]; 
} 


- (NSPoint)textContainerOrigin { 
    NSPoint origin = [super textContainerOrigin]; 
    NSPoint newOrigin = NSMakePoint(origin.x + 5.0f, origin.y); 
    return newOrigin; 
} 

@end 
+1

이 접근법과'setTextContainerInset :'을 사용하는 것의 차이점은 무엇입니까? –

+2

@patrick'setTextContainerInset'은 상단과 측면을 동일한 양만큼 삽 입합니다. 원점을 이동하면이 예제에서 비대칭 채우기가 제공됩니다. – Abizern

2

가변 단락 스타일을 만듭니다 (대부분 기본 단락 스타일의 변경 가능한 복사본을 만든 다음 머리 여백 및 첫 줄 머리 들여 쓰기를 원하는 왼쪽 여백으로 설정하십시오.) 그런 다음이 단락 스타일을 값으로 설정하십시오 보기의 텍스트 저장소 전체 내용에 대한 NSParagraphStyleAttributeName 속성의 내용입니다.

RTF에 표시되며 가능하면보기에서 가져 오거나 주어진 HTML 데이터입니다.보기가 읽기 전용이 아닌 경우 (예 : 사용자가 텍스트를 편집 할 수 있고 뷰에서 해당 텍스트를 검색하거나 수신하는 경우)이 솔루션을 피하는 것이 좋습니다. 사용자가 눈금자를 표시하고 단락 스타일을 직접 편집 할 수있는 경우 은 분명히입니다. 이 솔루션을 oid하십시오.

4

TextEdit에서는 텍스트보기를 큰보기에 배치하고 큰보기를 스크롤보기의 문서보기로 설정합니다 (텍스트 줄 바꿈 모드 일 때). 이것은 더 많은 작업을 필요로하지만 프리젠 테이션 정보 (특별히 사용자 지정된 단락 스타일의 형태로)를 모델 (텍스트)에 누설하지 않습니다.

4

의 상단과 하단 (20)의 5 왼쪽의 여백과 오른쪽을 줄 것이다. iOS7은 textContainerInset이라는 UITextView에 속성을 추가합니다. setTextContainerInset을 호출하면 내용에 대한 TextView 내부 여백이 만들어집니다.

+1

OS X에서도이 속성을 사용할 수 있습니다. –

관련 문제