2014-09-14 5 views
0

프로그래밍 방식으로 NSProgressIndicator 높이를 설정할 수있는 방법을 찾을 수 없습니다.프로그래밍 방식으로 NSProgressIndicator의 높이 변경

NSProgressIndicator *ind = [[NSProgressIndicator alloc] init]; 
[ind setStyle: NSProgressIndicatorBarStyle]; 
// Height does not change height of the actual indicator 
[ind setFrame: NSMakeRect(0, 0, 100, 50)]; 
[ind setBounds: NSMakeRect(0, 0, 100, 50)]; 
//[ind setControlSize: 0]; does only make it smaller, not bigger 
[view addSubview: ind]; 

내가 문서에 NSProgressIndicatorBarStyle 열거를 발견,하지만 두께를 지정하는 방법을 찾을 수 없습니다 :

지금까지 시도해보십시오. 여기

내 문제를 설명하는 스크린 샷 : (층 더 잘 이해 빨간색의 배경을 가지고) :

NSButton 클래스를 사용하는 경우가 발생합니다

enter image description here

. 이 문제를 해결할 수있는 방법이 있습니까?

+1

제대로 수행 할 수 없습니다. Cocoa의 많은 위젯은 비트 맵을 사용하여 그립니다. 비트 맵은 고정 된 크기입니다. 그들은 임의적으로 규모가 조정되면 제대로 작동하지 않을 것입니다. 'bounds' ** not **를 설정하여 프레임과 일치 시키되 표준 높이와 일치 시키면 그래픽이 늘어나지 만 심하게 느껴질 수 있습니다. –

답변

1

iOS와 마찬가지로 프레임 워크 제한으로 인해 진행 표시기 높이를 변경할 수 없습니다. 그러나 iOS에서 당신은

_indicator.transform = CGAffineTransformMakeScale(1.0f, 0.6f); 

편집을 변화와 함께 연주, 동일한 결과를 얻을 수 있습니다 : 난 그냥

_indicator.layer.transform = CATransform3DMakeScale(1.0f, 0.6f, 0.0f); 

맥 OS X에 시도하고 작동하지 않는, 그래서 그것은 아니다 iOS와 같을 것입니다. 왜냐하면 그것은 Cocoa에서 구현 된 방법 때문일 것입니다 (Ken이 제안한 것처럼). 높이를 변경할 수있는 유일한 방법은 controlSize입니다. 그러나 포인트를 지정할 수 없기 때문에 사용자의 요구에 맞지 않을 것이라고 생각합니다.

[_indicator setControlSize:NSMiniControlSize]; // or NSSmallControlSize 

당신은 내 추천이 하나 https://www.cocoacontrols.com/controls/lbprogressbar처럼, 당신의 사용을 위해 확장 할 수있는 무언가를 찾기 위해 주위를 둘러하는 것이 시점에서 NSProgressIndicator 및 최우선 drawRect을, 서브 클래스에 의해 임의의 프레임을 사용할 수 있어야합니다

IB에서
+0

슬프게도'transform'이라는 속성이 없습니다. – d3L

-1

당신은

  1. 는 유틸리티에서
  2. 이 선택한 일을 볼 수 귀하의 NSProgressIndicator 제어를 선택할 수 있습니다 내용 필터에서 전자보기 효과 관리자
  3. 보도 +
  4. 에는 Lanczos 규모는 높이를 변경해야하는 경우도 화면 비율을 설정 배율 행
  5. 에 설정된 필터에 적절한 스케일 값을
  6. 변환 만

NSView에 콘텐츠 필터를 추가하는 방법은 프로그래밍 방식으로도 추가 할 수 있습니다.

+0

레이어 크기를 조절하면 그래픽이 잘립니다. NSView는 서브 클래스를 만들어야이 일을 성취 할 수있다. – Leviathlon

+0

그리고 그것이 당신이 투표를 한 이유입니까?그래픽의 왜곡은 몇 가지 요인에 따라 달라질 수 있습니다.이 트릭을 여러 번했는데, 대부분 만족 스럽거나 완벽한 결과를 얻었습니다. 결과가 마음에 들지 않으면 또 다른 복잡한 방법을 선택하십시오. 이것은 단지 하나입니다. 사례가 수용 가능하고 간단한 해결책 – Hofi

관련 문제