NSTableColumn привязан к значению BOOL - PullRequest
0 голосов
/ 25 июня 2009

У меня есть NSTableView, связанный с NSArrayController. в моей модели у меня есть поле BOOL. Я пытаюсь привязать это значение к столбцу. он отображается правильно (1, где значение равно YES, и 0, где значение равно NO), но это только для чтения. = (когда я пытаюсь отредактировать значение, я не могу отправить его - когда я нажимаю ввод, ничего не происходит, установщик никогда не вызывается. Столбец редактируется.

я могу успешно связать это с IB - я просто связываю это как обычно, и все работает. но я не могу сделать то же самое программно = (

Вот как создается и добавляется столбец:

NSTableColumn *column = [[[NSTableColumn alloc] initWithIdentifier:@"ok"] autorelease];
[column setEditable:YES];
[[column headerCell] setStringValue:@"OK"];
[column bind:@"value" toObject:self.arrC withKeyPath:@"arrangedObjects.ok" options:nil];
[table addTableColumn:column];

У меня проблема только со значениями BOOL, если я связываю тот же столбец с другим полем (просто меняя keyPath), все работает нормально.

Ответы [ 4 ]

1 голос
/ 26 июня 2009

это только для чтения = (. Когда я пытаюсь отредактировать значение, я не могу передать его - когда я нажимаю ввод, ничего не происходит, установщик никогда не вызывается.

А затем в вашем фрагменте кода:

[column setEditable:NO];

Ваша колонка недоступна для редактирования. Вот почему редактирование не работает. Измените NO на YES.

Кстати: есть ли причина, по которой вы отображаете это значение в виде текста, а не флажок?

0 голосов
/ 08 октября 2009

Вам нужен преобразователь значения, в частности NSNegateBooleanTransformerName. Google для Apple: «Руководство по программированию Value Transformer»

0 голосов
/ 29 июня 2009

Что связано с arrC, который, как я полагаю, является вашим контроллером массива?

Связан ли arrC с массивом? Какие объекты в массиве привязаны к контроллеру? Coredata лица? NSMutableDictionaries?

0 голосов
/ 25 июня 2009

Вам нужно связать столбец таблицы, а не ячейку.

...