Tôi đang cố gắng thiết lập một NSCollectionView
(Tôi đã thực hiện điều này thành công trong quá khứ, nhưng vì một số lý do không thành công trong lần này).NSCollectionView rút ra không có gì
Tôi có một lớp mô hình được gọi là "TestModel" và có thuộc tính NSString
chỉ trả về một chuỗi (chỉ dành cho mục đích thử nghiệm ngay bây giờ). Sau đó tôi có một tuyên bố tài sản NSMutableArray
trong lớp đại biểu ứng dụng chính của tôi, và mảng này tôi thêm trường hợp của đối tượng TestModel
.
Tôi sau đó có Bộ điều khiển Mảng có Mảng nội dung của nó đã ràng buộc ứng dụng của đại biểu là NSMutableArray
. Tôi có thể xác nhận rằng mọi thứ ở đây đều hoạt động tốt; NSLogging:
[[[arrayController arrangedObjects] objectAtIndex:0] teststring]
hoạt động tốt.
Sau đó tôi có tất cả các liên kết thích hợp cho thiết lập chế độ xem bộ sưu tập, (itemPrototype và nội dung) và cho mục Xem bộ sưu tập (chế độ xem). Sau đó, tôi có trường văn bản trong chế độ xem mục bộ sưu tập được gắn với Bộ sưu tập Xem Item.representedObject.teststring
. Tuy nhiên NOTHING hiển thị trong giao diện bộ sưu tập khi tôi khởi động ứng dụng, chỉ một màn hình trắng trống. Tôi đang thiếu gì?
UPDATE: Đây là mã tôi sử dụng (theo yêu cầu của shipley wil):
// App delegate class
@interface AppController : NSObject {
NSMutableArray *objectArray;
}
@property (readwrite, retain) NSMutableArray *objectArray;
@end
@implementation AppController
@synthesize objectArray;
- (id)init
{
if (self = [super init]) {
objectArray = [[NSMutableArray alloc] init];
}
return self;
}
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
TestModel *test = [[[TestModel alloc] initWithString:@"somerandomstring"] autorelease];
if (test) [objectArray addObject:test];
}
@end
// The model class (TestModel)
@interface TestModel : NSObject {
NSString *teststring;
}
@property (readwrite, retain) NSString *teststring;
- (id)initWithString:(NSString*)customString;
@end
@implementation TestModel
@synthesize teststring;
- (id)initWithString:(NSString*)customString
{
[self setTeststring:customString];
}
- (void)dealloc
{
[teststring release];
}
@end
Và rồi như tôi đã nói các mảng nội dung của điều khiển Mảng là ràng buộc để này "objectArray", và Nội dung của NSCollectionView được liên kết với Array Controller.arrangedObjects. Tôi có thể xác minh rằng Bộ điều khiển Mảng có các đối tượng trong đó bởi NSLogging [arrayController arrangementObjects], và nó trả về đối tượng đúng. Nó chỉ là không có gì hiển thị trong NSCollectionView.
UPDATE 2: Nếu tôi đăng nhập [collectionView nội dung] Tôi nhận được gì:
2009-10-21 08:02:42.385 CollViewTest[743:a0f] (
)
Vấn đề có lẽ là ở đó.
UPDATE 3: Theo yêu cầu ở đây là dự án Xcode:
http://www.mediafire.com/?mjgdzgjjfzw
của một ứng dụng thanh menu, vì vậy nó không có cửa sổ. Khi bạn xây dựng và chạy ứng dụng, bạn sẽ thấy một mục thanh menu có nội dung "test", nó sẽ mở ra khung nhìn chứa NSCollectionView.
Cảm ơn
Làm thế nào để bạn chỉnh sửa các mảng có thể thay đổi trong các đại biểu? Bạn có thể gửi mã không? –
Tôi đã chỉnh sửa bài đăng và thêm mã tôi sử dụng – indragie
Mã bạn đã đăng không cho chúng tôi biết bất kỳ điều gì về việc các kết buộc của bạn có được kết nối đúng cách hay không. Bạn sẽ cần phải đăng dự án ở đâu đó. – NSResponder