2
반환하는 내용과 상관없이 테이블보기는 .xib 파일에서 수동으로 설정된 표시 텍스트 (NSTextField의 'Title') 만 표시합니다. 내가 뭘 잘못하고 있는지 알아내는 데 도움주세요. 감사.NSTableView는 objectValueForTableColumn 메서드의 반환 값을 표시하지 않습니다.
내 NSTableView에는 1 개의 열만 있습니다.
#import "DeviceSettingsController.h"
#import <ImageCaptureCore/ImageCaptureCore.h>
@interface DeviceSettingsController()
@property (weak) IBOutlet NSTableView *tableViewScanners;
@property (weak) IBOutlet NSMatrix *checkBoxes;
@property NSMutableArray *availableScanners;
@property ICDeviceBrowser *deviceBrowser;
@end
@implementation DeviceSettingsController
- (void)viewDidLoad {
[super viewDidLoad];
_availableScanners = [[NSMutableArray alloc] init];
_deviceBrowser = [[ICDeviceBrowser alloc] init];
_tableViewScanners.delegate = self;
_tableViewScanners.dataSource = self;
_deviceBrowser.browsedDeviceTypeMask = ICDeviceTypeMaskScanner | ICDeviceLocationTypeMaskLocal | ICDeviceLocationTypeMaskShared | ICDeviceLocationTypeMaskBluetooth | ICDeviceLocationTypeMaskBonjour;
_deviceBrowser.delegate = self;
[_deviceBrowser start];
}
- (id)initWithMainView:(NSView *)_theView AndMainController:(NSViewController *)_theViewController AndNibName:(NSString *)nibName AndArgs:(NSArray *)_args {
self = [super initWithMainView:_theView AndMainController:_theViewController AndNibName:nibName AndArgs:_args];
return self;
}
- (void)deviceBrowser:(ICDeviceBrowser *)browser didAddDevice:(ICDevice *)device moreComing:(BOOL)moreComing {
[_availableScanners addObject:device];
[_tableViewScanners reloadData];
}
- (void)deviceBrowser:(ICDeviceBrowser *)browser didRemoveDevice:(ICDevice *)device moreGoing:(BOOL)moreGoing {
[_availableScanners removeObject:device];
[_tableViewScanners reloadData];
}
- (void)didRemoveDevice:(ICDevice *)device {
}
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
return [_availableScanners count];
}
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
NSString *retVal = [((ICScannerDevice *)[_availableScanners objectAtIndex:row]) name];
return retVal;
}
@end
다음과 같이 너무 일반적인 구현이 될 것이다, 또한 Apple Docs를 참조하면
를 사용할 필요가 당신 때문에 대신 objectValueForTableColumn (기반 셀)의 XIB를 언급하기 때문에이보기를 기반으로 가정 내 대답 [여기] (https://stackoverflow.com/questions/26330468/nsoutlineview-object-value-is-being-returned-but-only-the-placeholder-title/26331214#26331214)을 참조하십시오. –