値を変更せずに値を変更できるCPTableColumnを作成しようとしています。例では、テーブルにスライダを表示させようとしていますが、ドラッグするとその行のテーブル値が変更されます。カプチーノでカスタムの編集可能な表の列を作成する方法
CPTableViewを調べると、CPTextFieldsとCPButtonsがサポートされていますが、他のコントロールを使用して値のインライン編集を行う方法がわかりません。
これについての助力は素晴らしいことです。
値を変更せずに値を変更できるCPTableColumnを作成しようとしています。例では、テーブルにスライダを表示させようとしていますが、ドラッグするとその行のテーブル値が変更されます。カプチーノでカスタムの編集可能な表の列を作成する方法
CPTableViewを調べると、CPTextFieldsとCPButtonsがサポートされていますが、他のコントロールを使用して値のインライン編集を行う方法がわかりません。
これについての助力は素晴らしいことです。
あなたは簡単にこのように、テーブルビューにスライダーを追加することができます。
var dataColumn = [[CPTableColumn alloc] initWithIdentifier:"Slider"];
[table addTableColumn:dataColumn];
[[dataColumn headerView] setStringValue:"Slider (Editable)"];
[dataColumn setEditable:YES];
[dataColumn setWidth:140];
[dataColumn setDataView:[[CPSlider alloc] initWithFrame:CGRectMakeZero()]];
スライダは自動的にデータソースから読み取るセルの値を反映してか、限り、あなたは値が数値であることを確認して結合します。
残念ながら、メモしたように、スライダーはボタンではないため、テーブルにはtableView:setObjectValue:forTableColumn:row:
というメッセージは送信されません。 CPSlider
をサブクラス化してYES
からisKindOfClass:[CPButton class]
に返すことができます。
これはハックのように感じられるので、長期的な解決策として、CPSliderセルを処理する方法を確認してください。 CocoaがスライダーにtableView:setObjectValue:forTableColumn:row:
を送信した場合は、feature requestを投稿して、小さなCocoaテストアプリを組み込んでデモンストレーションしてください。カプチーノは、これらの問題でココアと同じように働くよう努めています。
ありがとうございます!ハックは今のところうまく動作します。 CPButtonとは対照的に、CPControlをチェックしないのは変だと思います。私は彼らに機能要求を投げます。 – zachzurn