0

各要素がチェックボックスになっているアウトラインビューがあります。いくつかのビジネスロジックによって提供されるように、これらのチェックボックスの初期状態を設定したいと思います。私はNSOutlineViewDelegateの適切な(私は願っています)メソッドでそれをやろうとしています:

- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(id)item
{
    NSButton *res = [outlineView makeViewWithIdentifier:@"checkbox" owner:self];
    res.title = [item description];
    if([item intValue] & 1)
        res.state = NSOnState;
    else
        res.state = NSOffState;
    return res;
}

すべてがほぼ問題なく、ボタンのタイトルが正しく変更されます。ただし、状態の変更は完全に無視されます。

4

1 に答える 1

0

ついに私は解決策を見つけました。なぜこれが発生するのか、この場合のチェックボックスのタイトルの割り当てとチェックボックスの状態の割り当ての違いはまだわかりません。しかし、誰かが私のメソッドで割り当てた後、チェックボックスの状態を設定するためにアイテムのintegerValueメソッドを呼び出しているようです。したがって、この問題を解決するには、itemのintegerValueメソッドが適切な値を返すようにする必要があります。

于 2012-06-18T07:58:17.910 に答える