1
(10.10에 표시하지만, 위의 10.7 재현) 내가 NSOutlineView 및로드하여 시작하는 맥 메뉴 표시 줄 응용 프로그램을 가지고
몇 개의 뷰 기반 셀을 채 웁니다. 셀을 선택하면 NSOutlineView가 숨겨지고 새로운 NSTableView (TicketViewController)가 표시됩니다. 커스텀 NSTableViewCell (CommentComposeCellView)은 NSTextView와 NSImageView와 NSButton을 포함하는 커스텀 NSView (CommentComposeFooterView)를 포함합니다. NSTableViewCell과 커스텀 NSView는 Autolayout 제약 조건을 가지고 있기 때문에 포함 된 윈도우의 크기와 일치해야합니다. 그러나 윈도우 크기를 조정할 때 윈도우의 가장자리가 커스텀 NSView에 닿을 때까지 커스텀 NSView의 크기가 조정되지 않습니다.
-(void)outlineViewSelectionDidChange:(NSNotification *)notification{
if ([self.outlineView selectedRow] != -1) {
id clickedItem = [self.outlineView itemAtRow:[self.outlineView selectedRow]];
if ([clickedItem isKindOfClass:[Request class]]){
[self.ticketViewController displayRequest:clickedItem];
[self.scrollView setHidden:YES];
NSView *contentView = [self.window contentView];
[[self.ticketViewController view] setFrame:[contentView bounds]];
[[self.ticketViewController view] setTranslatesAutoresizingMaskIntoConstraints:NO];
[contentView addSubview:[self.ticketViewController view]];
NSView *ticketView = [self.ticketViewController view];
NSDictionary *views = NSDictionaryOfVariableBindings(ticketView);
[contentView addConstraints:
[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[ticketView]|"
options:0
metrics:nil
views:views]];
[contentView addConstraints:
[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[ticketView]|"
options:0
metrics:nil
views:views]];
}
}
}
가 (셀보기를 작성 코멘트)의 수퍼에 작성 글보기 댓글 관련하는 제약이 있는가에 ? 추적하지 못하는 "답장 추가"버튼뿐만 아니라 배경에 표시된대로 볼 수 있습니다. 또한 IB는 제약 오류 (빨간색 원 안에있는 화살표)를 나타냅니다. 당신은 그 문제를 해결해야합니다. –
안녕하세요 Ken, 댓글 작성 꼬리말보기에 superview 제약 조건을 적용 할 수있는 공간이 있습니다. 또한 레이아웃 문제가 해결되었습니다. 프로그래밍 방식으로 이러한 셀이 살고있는 테이블 열의 크기를 조정하여이 문제를 해결할 수 있었지만 자동 레이아웃에서 처리 할 수없는 이상한 것처럼 보입니다. – joshbillions
원본 문제와 관련없는 부분 : 보기가 자동 레이아웃 모드에있는 한 프레임을 직접 설정할 필요가 없습니다. [[[self.ticketViewController view] setFrame : [contentView bounds]];'사용자가 설정 한 프레임 값 뷰 레이아웃 단계에서 덮어 쓰게됩니다. '-setFrame :'은 여전히 하위 트리에 대한 자동 레이아웃 모드를 선택 해제하고 하위 뷰를 수동으로 레이아웃하는 경우에만 유용 할 수 있습니다. –