1

私は少し立ち往生しており、アップルのドキュメントからこれを解決できないようです。

NSTableCellView に含まれる NSTable 列に 2 つのボタンがあります。

行内のオブジェクトの値に応じて、コードでボタンを非表示にしようとしています。

値を取得することは問題ありませんが、特定のボタンをターゲットにする方法がわかりません。テーブル内にあるため、アウトレットにバインドできません。以下のコードを試してみましたが、特定のボタンではなく NSTableCellView 全体を非表示にするだけで、識別子をボタンのものに変更しようとしましたが、同じようです。

   if(selectedTweet.imageURL){

        NSButton *imageButton = [tableView makeViewWithIdentifier:@"secondButtons" owner:self];
        [imageButton setHidden:NO];
        return imageButton;

    } else {

        NSButton *imageButton = [tableView makeViewWithIdentifier:@"secondButtons" owner:self];
        [imageButton setHidden:YES];
        return imageButton;

    }

これは明らかに私が作っているよりもはるかに簡単です?? 大変助かります。

ありがとう

ガレス

4

1 に答える 1

1

CocoaBindings を使用してそのテーブルにデータを入力している場合は、ボタンの「非表示」属性を値トランスフォーマーにバインドしTable Cell View/objectValue.imageURLて使用するだけです。NSIsNilコードはまったく必要ありません。

古い形式のデータ ソースを使用している場合、状況は少し複雑になります。その場合、オブジェクトに imageButton プロパティを設定し、NSTableViewDelegate の- (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)rowメソッドで設定できます。

于 2013-08-21T17:39:32.060 に答える