を設定しようとしていますNSCollectionView
(過去に成功しましたが、何らかの理由で今回は失敗しました)。
「TestModel」というモデルクラスがありNSString
、文字列を返すだけのプロパティがあります(現在はテスト目的のためだけです)。次にNSMutableArray
、メイン アプリのデリゲート クラスでプロパティ宣言を行い、この配列にTestModel
オブジェクトのインスタンスを追加します。
次に、Content Array がアプリのデリゲートにバインドされた Array Controller を用意しますNSMutableArray
。ここまでのすべてが正常に機能していることを確認できます。NSLogging:
[[[arrayController arrangedObjects] objectAtIndex:0] teststring]
うまくいきました。
次に、コレクション ビューのセットアップ (itemPrototype とコンテンツ)、およびコレクション ビュー アイテム (ビュー) に適切なバインディングをすべて用意します。次に、 Collection View にバインドされたコレクション アイテム ビューにテキスト フィールドを作成しますItem.representedObject.teststring
。ただし、アプリを起動すると、コレクション ビューには何も表示されず、空白の白い画面だけが表示されます。私は何が欠けていますか?
更新:これが私が使用するコードです(wil shipleyによって要求されました):
// 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
そして、前述のように、Array Controller のコンテンツ配列はこの「objectArray」にバインドされ、NSCollectionView の Content は Array Controller.arrangedObjects にバインドされます。NSLogging [arrayController ArrangeObjects] によって配列コントローラーにオブジェクトが含まれていることを確認でき、正しいオブジェクトが返されます。NSCollectionView には何も表示されません。
更新 2: [collectionView content] をログに記録すると、何も得られません:
2009-10-21 08:02:42.385 CollViewTest[743:a0f] (
)
問題はおそらくそこにあります。
更新 3:ここで要求されたのは、Xcode プロジェクトです。
http://www.mediafire.com/?mjgdzgjjfzw
メニューバー アプリなので、ウィンドウはありません。アプリをビルドして実行すると、「test」というメニューバー項目が表示されます。これにより、NSCollectionView を含むビューが開きます。
ありがとう