Mac 용 코딩에 익숙하지 않습니다. 나는 iOS 코딩에서 UITableView에 익숙하지만, NSTableView가 내 애플 리케이션에서 제대로 작동하는 것처럼 보일 수 없다. 예 문서 및 자습서를 살펴 보았지만 필요한 결과를 얻는 데 어려움을 겪고 있습니다. 내 원하는 결과는 꽤 기본적이고 간단해야하지만 TableViews에 난처한 상황입니다. 나는 그것이 실제로 NITableView와 함께 작동하고 싶은 것처럼 보이는 것보다 UITableView를 사용하는 것과 같은 기능을 더하고자한다. 행을 추가하거나 제거하고 싶지 않습니다. 하나의 열만 있으면됩니다. 다음 NSView에서 동일한 옵션을 사용하여 해당 옵션과 연결된 내용을 트리거 할 수있는 버튼 목록처럼 작동해야합니다.OSX에서 동적으로 변경되는 NSTableView를 얻는 방법
(한 화면에 3 개의보기가 있습니다. 첫 번째는 왼쪽의 기본 메뉴이며 눌려지면 tableView가 하위 메뉴를 표시합니다.이 옵션을 선택하면 화면의 맨 오른쪽에 내용이 열립니다. 어쨌든 내 원하는 결과.)
현재 테이블 뷰를 채우는 것이 없습니다. 이것은 현재의 모습입니다.
@interface RootViewController()
@end
@implementation RootViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
options = [[NSMutableArray alloc] init];
}
return self;
}
-(void)viewDidLoad{
}
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView{
return [options count];
}
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row{
return [[options objectAtIndex:row] valueForKey:[tableColumn identifier]];
}
-(IBAction)mainMenuBtn:(id)sender{
NSLog(@"1");
[options addObject:@"Strain 1"];
NSString *test = [options objectAtIndex:0];
NSLog(test);
[tableView reloadData];
}
은 현재 내가있는 tableView의 TableView에 NIB에 연결 한 .H
@interface RootViewController : NSViewController <NSTableViewDataSource>{
IBOutlet NSView *mainMenuView;
IBOutlet NSTableView *tableView;
NSMutableArray *options;
}
-(IBAction)mainMenuBtn:(id)sender;
@end
하는 .m
. fileSource에 dataSource를 연결하려고 시도했지만 작동하지 않았습니다. 다른 곳에서도 찾아 볼 수없는 것 같습니다. 어떤 제안이라도 대단히 감사하겠습니다. 감사합니다
음, 내가 제안한 조정을했습니다. 첫 번째 리턴은 튜토리얼에서 나온 것이었지만 제안한대로 대체했습니다. 또한 [options addObject : @ "Strain 1"]을 추가했습니다. 어디로 MutableArray 할당 그래서 테이블이 내용을 표시합니다 확인할 수 있습니다. 작동하지만 여전히 버튼을 누르면 테이블이 예상대로 업데이트되지 않습니다. 어떤 제안? 감사합니다 – steven
mainMenuBtn의 첫 번째 네 줄은 작동합니까? ... 특히 NSLog (테스트) ...? – Merlevede
실제로 실제로 무슨 일이 일어나는지 알았지 만 문제를 해결하는 방법을 모르겠습니다. numberOfRows에서 NSLog를 추가하여 카운트를 표시했습니다. 재로드가 발생하면 다시 호출되지만 카운트는 1로 유지됩니다. mainMenuBtn에서 이전 NSM 로그 (이전에 발생)와 NSM이 2 인 경우에도 마찬가지입니다. 그 사이에 어떤 일이 일어나는지 확실하지 않습니다. – steven