Доступ к пользовательскому Ncellableviews Tablecellview - PullRequest
0 голосов
/ 28 января 2019

Я создал NSTableview и пользовательский класс tablecellviewview «KSTablecellview», который определяет ячейки внутри таблицы.

Теперь я пытаюсь получить доступ к этим ячейкам и элементам внутри них в определенное время, дляПример срабатывает через вход пользователя.

Например, я хочу изменить текст текстового поля в одном из моих пользовательских ячеек.Я попробовал это:

Outlet_TableView.selectRowIndexes(IndexSet(integer: 0), byExtendingSelection: false) // Selecting row #1

let view = Outlet_TableView.view(atColumn: 0, row: 0, makeIfNecessary: false) as! KSTableCellView // getting cellview, at first row/ first column (-> crashes)    
view.myTextField.stringvalue = "Hello World"

Это не дает мне "[...] [по умолчанию] Невозможно загрузить исключения Info.plist (eGPUOverrides)"

Я попробовал некоторые другие вещи и попробовалчтобы выяснить причину проблемы, но я не смог этого сделать, я все еще новичок.

Любая помощь была бы очень полезна.

Я использую XCode и Swift, пытаюсь создать приложение для Mac OS.

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Возможно, вы выполняете эти операции до первой загрузки таблицы (например, в viewDidLoad) или при tableView с numberOfRows = 0.

До тех пор, пока tableView не загрузит эту строку, он не будет создавать представления внутри этой строки, и tableView.view(atColumn:, row:, makeIfNecessary: false) вернет nil, и принудительное развертывание этого nil вызовет сбой вашего приложения.

0 голосов
/ 28 января 2019

Вам следует избегать обновления содержимого ваших ячеек вручную.Вместо этого вам следует перезагрузить данные из вашего источника данных.

func reloadData(forRowIndexes rowIndexes: IndexSet, 
                           columnIndexes: IndexSet)

, что, в свою очередь, приведет к получению данных из вашего источника данных по указанному индексу / столбцу.

Например, ваши данныеисточник, вероятно, будет содержать "Hello World" по указанному индексу после того, как произошло пользовательское событие (при условии, что вы обновили содержимое источника данных), и, таким образом, будет использоваться в методе делегата dataCellFor:.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...