Как показать больше деталей при нажатии на ячейку TableView?
У меня есть TextView, и любой текст, введенный в TextView, может быть сохранен в TableView (или я должен сказать NSMutableArray!). У меня это работает без проблем. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что в TextView может быть напечатано много текста, а не весь текст виден внутри ячейки TableView. Я не хочу увеличивать ячейки TableView и хотел бы сохранить их в их текущем размере.
В конечном итоге я хочу иметь возможность щелкнуть ячейку TableView, и она будет показывать пользователю весь текст, чтобы иметь возможность читать и редактировать, если это необходимо, а затем сохранять его в исходной TableCell с обновленными данными.
Я не могу найти способ сделать это и был бы признателен за любую помощь в этом.... спасибо.
1 ответ
Вы можете реализовать это двумя различными способами, в зависимости от требований вашего проекта:
Редактирование в таблице: пользователь щелкает ячейку, и текст становится редактируемым. Вы должны быть в состоянии заставить это работать, реализуя табличное представление на основе представления. Просто добавьте
NSTextView
на ваш взгляд и установитьsetHidden:YES
, Когда пользователь щелкает ячейку, вы показываетеNSTextView
, Закончив редактирование (нажав кнопку или щелкнув другую ячейку???), вы можете обновить модель и скрытьNSTextView
снова. Чтобы это работало, вам понадобится представление на основеNSTableView
,Редактирование вне таблицы с использованием
NSPopover
, Когда пользователь щелкает ячейку, вы показываете отдельныйNSView
со всеми вашими элементами редактирования в нем, завернутые вNSPopover
, Передав границы ячейки поповеру, вы можете "прикрепить" поповер к определенной ячейке, которую вы редактируете. Как только редактирование закончено, вы обновляете свою модель и закрываете поповер.