2014-01-13 1 views
0

내 앱에는 InspectorBar를 사용하는 NSTextView가 있습니다. 그러나, 그냥이 같은 창 상단에 앉아 : 나는 현재 NSImageView입니다 어두운 가로 막대에 더 아래로 위치 할 수 있도록하려는코코아 : Inspector Bar 위치를 변경하는 방법

enter image description here

. setFrame은 효과가없는 것 같습니다. 어떻게해야합니까?

편집 : 현재 다른 사람의 프로젝트 구현을 수정 중입니다. 아래에서 볼 수 있듯이 관리자는 검사기 막대를 이동할 수 있었고 NSToolbar를 사용하지 않았습니다. 그래서 가능해야합니다.

- (void) addStyleBar 
{ 
    NSArray* subviews = [self.window.contentView superview].subviews; 
    [self.styleBar removeFromSuperview]; 

    [subviews enumerateObjectsUsingBlock: ^(id obj, NSUInteger idx, BOOL *stop) 
    { 
     if (![obj isKindOfClass: [MainView class]]) 
     { 
      self.styleBar = obj; 
     } 
    }]; 

    [self.styleBar setFrame: NSMakeRect(300.0f, 2.0f, CGRectGetWidth(self.styleBar.frame), CGRectGetHeight(self.bounds))]; 

    [self addSubview: self.styleBar]; 
} 

하지만 내 프로젝트에 영향을주지 않습니다

enter image description here

여기이 사람이 달성 방법입니다.

EDIT 2 : 그래서 같은 제약 조건을 추가하면 : 여기서

[[self.leftColumnVC.textView.window.contentView superview] addConstraint:[NSLayoutConstraint constraintWithItem:inspectorBarView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:formattingBarBackground attribute:NSLayoutAttributeTop multiplier:1 constant:0 ]]; 

어두운 회색 막대 위의 첫 번째 이미지에서 보여진 formattingBarBackground이다. 내가 이렇게하면 나는이 얻을 :

enter image description here

이 좋은 상단에있는 막대에 대한 예약 된 공간이 없기 때문에, 그리고 윈도우의 파단을 반복하여 나는 아직도, NSInspectorBar에 대한 참조를 얻을 수 있습니다 아직 거기에있어, 그것은 단지 보이지 않는다. 그것은 formattingBarBackground 이미지 뷰 뒤에 숨어 있습니까? 그렇다면 어떻게 앞에 가져갈 수 있습니까?

답변

1

검사 도구 모음은 창 도구 모음 아래에 있습니다. 따라서 귀하의 "iTunes"UI 구현으로 인해 귀하의 문제가 발생합니다. 이것을 NSToolbar 안에 NSToolbarItems로 구현한다면, Inspector Bar는 자동으로 그 아래에 위치하게됩니다.

There is no API to alter to the location of the Inspector Bar, 그래서 당신이 할 수있는 최선의 방법입니다 (자신의 검사기 막대를 구현하는 것만 큼).

+0

답변 해 주셔서 감사합니다. 내 편집을 참조하십시오. –

+0

@JamesHarpe Yikes! 그건 분명히 * 지원되지 않습니다. 미안, 너를 도울 수 없어. :( –

+1

우리는 궁극적으로 NSToolbar를 사용하기로 결정했습니다. 감사합니다! –

관련 문제