2013-01-18 11 views
9

제목에서 말했듯이 실제로 NSBrowser 컨트롤에서 테두리를 제거하려고합니다. 부모는 NSView와 NSControl입니다. NSBrowser 자체에는 사용할 수있는 메소드가없고 부모 컨트롤에는 사용할 수있는 메소드가 없습니다. 이 사람은 완전히 서류 미비 된 것 같습니다.NSBrowser에서 테두리 제거

국경을 제거한 이유는 프로그래밍 방식으로 다른보기에 도킹되어 있기 때문에보기 계층 구조는 이미 경계가 있음을 의미합니다.

아이디어가 있으십니까?

+0

예, 그래서 내가 NSView의 및 NSControl – Kezzer

답변

2

NSBrowser는 NSBrowserCell을 사용하여 인터페이스를 구현합니다. NSCell에서 상속됩니다. NSCell은 필요한 방법을 제공해야합니다. NSCell에 클래스 참조에서

은 ... 관리 디스플레이 속성 - setBezeled : - isBezeled - setBordered : - isBordered - isOpaque - setControlTint : - controlTint - setBackgroundStyle : - backgroundStyle - interiorBackgroundStyle

+0

을 언급 한 이유는 내가 한 것을 놓친 방법을 잘 모르겠어요. 나는 곧 이것을 시도 할 것이다, 환호! – Kezzer

+0

나는 행운이없이 약간의 변형을 시도했다. setBordered를 사용하면 아무것도하지 않는 것처럼 보입니다. 나는 아무도 이것을 전에 한 적이 없다. 나는 이상하게 여긴다. – Kezzer

1

NSScrollView의 테두리를 제거하십시오.

+0

그것이 제가 처음으로 살펴 보았습니다. 사용할 수있는 옵션이 없습니다. 문서는 테두리 열거 형 옵션을 노출하지만 테두리를 설정할 수있는 방법은 없습니다. – Kezzer

+0

그것은 이상합니다. IB는 분명히 그렇게 할 수 있습니다. 그럼 한번 보죠. –

+0

'NSBrowser'는 AppKit에서 스크롤 가능한 구성 요소와 다른 설정을 가지고 있다는 것을 알고 있습니다. 예를 들어'NSTableView'가 기대하는 것과 같이 스크롤 뷰로 둘러 쌓기보다는 내부 스크롤 뷰를 제공합니다. –

1

평야에 NSView (IB의 "사용자 정의보기")을 포함시키고 브라우저 프레임을 포함하는보기의 경계에서 모든 방향으로 1 포인트 씩 "시작"으로 만듭니다. 포함하고있는 뷰는 경계선을 없애기 위해 브라우저를 클립 할 것입니다. 그런 다음 브라우저를 직접 추가하는 대신 뷰가 포함 된 뷰를 주변 뷰 계층에 배치하십시오.

+0

다른 답변이 없습니다. NSBrowser의 자동 레이아웃 제약 조건 네 개 모두를 -1로 설정하여이 대답을 구현했습니다 (둘러싸는 일반 NSView). 챔피언처럼 작동합니다. –

0

해결책을 찾고있는 사람들에게. NSBrowser는 NSView의 하위 클래스입니다. 당신은 0에 NSView의 층의 테두리 너비를 설정할 수 있습니다

(스위프트)

self.layer?.borderWidth = 0