Значение привязки для NSTableView, но подсказка также устанавливается - PullRequest
2 голосов
/ 02 июня 2010

Я настроил NSTableView в Интерфейсном Разработчике для заполнения из NSArray. Каждое значение массива представляет одну строку в таблице. Значение привязано правильно, но в качестве побочного эффекта подсказка ячейки таблицы установлена ​​в строковое представление связанного объекта.

В моем случае NSArray содержит NSDictionary объектов, и всплывающая подсказка выглядит так, как будто это вывод [... description] этого словаря. Очень некрасиво ...

Я не хочу, чтобы подсказка была установлена ​​вообще. У меня есть другие таблицы, которые имеют простые значения NSString, связанные с ними, и у них не установлена ​​подсказка автоматически. Есть ли какая-то магия в Интерфейсном Разработчике? Я пытался начать с пустого проекта - та же проблема.

Я должен добавить, что ячейка таблицы - это пользовательская реализация NSTextFieldCell, которая использует экземпляр NSButtonCell для рисования изображения и метки в таблице. Значения извлекаются из словаря, связанного как значение.

Почему всплывающая подсказка устанавливается, когда я связываю только атрибут «значение»?

Заранее спасибо!

1 Ответ

4 голосов
/ 05 июня 2010

Fixed. Вот что случилось:

  • Я использовал пользовательский NSTextFieldCell, чтобы нарисовать ячейку таблицы
  • Значение было привязано к экземпляру NSDictionary
  • Фактическое значение ячейки было установлено на строковое представление словаря. Его не было видно, потому что я использовал собственную ячейку.

NSTableView может нарисовать специальное окно, похожее на всплывающую подсказку, и показать содержимое ячейки, если оно не помещается в ячейку.

  • Для моей пользовательской камеры это было так.

Отключение этого можно сделать, реализовав метод NSTableViewDelegate:

- (BOOL)tableView:(NSTableView *)tableView 
    shouldShowCellExpansionForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {

 return NO;

}

...