NSViewController로 NIB를로드 한 후… NIB의 NSButton에 어떻게 액세스합니까?

StackOverflow https://stackoverflow.com/questions/1809656

문제

Iboutlets가 2 차 펜촉에서 NSButton에 연결된 NSViewController를 서브 클래스했습니다.

NSViewController를 인스턴스화하고 NSMenu에서보기를 적용 할 수 있습니다. 훌륭하게 작동하지만 버튼에 액세스하여 제목을 변경합니까?

NSViewController에는 iBoutlets가 있기 때문에 컨트롤러를 통해이를 수행 할 것이라고 가정했습니다.

//this part works great
NSViewController *viewController = [[toDoViewController alloc] initWithNibName:@"toDoView" bundle:nil];
NSView *newView = [viewController view];
newMenuItem.view = newView;

//this part not so much
[viewController [toDoButton setTitle:someStringHere]];

여기에서 어디로 가야하는지에 대한 조언이 있습니까?

추가 편집 : TodoviewController 클래스 -

@interface toDoViewController : NSViewController {
    IBOutlet NSButton *checkBoxButton;
    IBOutlet NSButton *toDoButton;
}

@end
도움이 되었습니까?

해결책

[viewController [toDoButton setTitle:someStringHere]];

대화식 소설 통역사가 말한 것처럼,“동사가 빠진 것 같습니다.”

수신기가 있습니다.viewController) 및 완전한 메시지 발현 ([toDoButton setTitle:…]) 및 브래킷이지만 선택기가 없습니다. 따라서 이것은 유효한 메시지 표현이 아닙니다.

두 가지 가능성이 있습니다.

  1. 뷰 컨트롤러에 메시지를 보내고 결과를 전달한다는 의미입니다. setTitle: 그 주장으로, 당신은 선택기를 잊어 버렸습니다. NSButton이기 때문에 나는 이것이 거의 가능하지 않습니다 setTitle: 아무것도 반환하지 않습니다.
  2. 뷰 컨트롤러에서 버튼을 가져온 다음 버튼을 보내는 것을 의미합니다. setTitle: 메시지. 이보기 컨트롤러가 추가 된 NSViewController의 서브 클래스 인스턴스라고 가정합니다. toDoButton 속성, 어느 쪽이든 [[viewController toDoButton] setTitle:someStringHere] 또는 [viewController.toDoButton setTitle:someStringHere].
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top