私のアプリでは、NSBrowserで最後に選択されたアイテムを追跡する必要があります。以下はNSBrowserを設定します。
- (void)awakeFromNib
{
[browser setDelegate:self];
[browser setTarget:self];
[browser setAction:@selector(browserCellSelected:)];
[browser setSendsActionOnArrowKeys:YES];
}
以下は、セルが選択されるときにセルを処理します。これは、マウスまたはキーボードによる選択で機能します。アプリで複数の選択が許可されている場合は、アクションメソッドでそれを処理する必要があります。
- (void)browserCellSelected:(id)sender
{
NSIndexPath *indexPath = [browser selectionIndexPath];
MyItem *myItem = [browser itemAtIndexPath:indexPath];
if (myItem)
{
NSLog(@"Selected Item: %@", myItem.name);
}
}
ところで、プログラムによる選択はbrowserCellSelected:メソッドを起動せず、ユーザーのクリックはデリゲートのbrowser:selectRow:inColumn:メソッドを呼び出しません。