0

NSTableView が編集中かどうかを確認したい。

tableView: shouldEditTableColumn: row:およびtableView: setObjectValue: forTableColumn: row:関数を使用しようとしました。例えば:

- (BOOL)tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
     isRenaming = YES;
     return YES;
}

- (void)tableView:(NSTableView *)tableView setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
     isRenaming = NO;

     ...

}

ただし、tableView: shouldEditTableColumn: row:関数は、テーブルビューを編集しようとしていない場合でも呼び出されました。

なので、時々、isRenaming は YES のままです。

NSTableView が編集中かどうかを知るには?

4

3 に答える 3

1

ビュー コントローラーをテーブル ビュー セルのテキスト ビューのデリゲートとして設定します。

次に、ユーザーがプロトコル メソッドisRenaming = YESをトリガーするときに ""を設定できます。ユーザーが編集を終了したとき (またはユーザーが UI の [完了] または [変更を保存] ボタンをクリックしたとき) に" " を設定することもできます。[control: textShouldBeginEditing:]isRenaming = NO

于 2012-12-08T14:12:33.560 に答える
0

ついに、行方不明のケースを見つけました。

" tableView: shouldEditTableColumn: row: " 関数は、NSTableView でダブルクリック イベントが発生したときに呼び出されました。

そう、

- (void)tableViewDoubleClicked:(id)sender {
       isRenamed = NO;
       ...
}

それは問題を解決しました。

于 2013-01-06T04:22:28.427 に答える