Шаг 1: $ npm cache clean --force
Шаг 2: удалить node_modules из папки $ rm -rf node_modules
или удалить его вручную, зайдя в каталог и справа -нажмите> удалить.
Шаг 3: npm install
Для начала, $ npm start
Это сработало для меня. Надеется, что это работает и для вас.
Тем не менее, если она есть, пожалуйста, проверьте ошибку, отображаемую красным, и действуйте соответствующим образом. Будьте осторожны при использовании rm -rf . Эта ошибка характерна для среды node.js. Удачного кодирования !!
Хорошо, прежде всего, если у вас его еще нет, вам нужно создать класс контроллера для вашего приложения. Добавьте выход для NSArrayController
, в котором хранятся ваши объекты, и выход для NSTableView
, который отображает ваши объекты, в интерфейсе вашего класса контроллера.
IBOutlet NSArrayController *arrayController;
IBOutlet NSTableView *tableView;
Подключите эти выходы. в NSArrayController
и NSTableView
в IB. Затем вам нужно создать метод IBAction
, который вызывается при нажатии кнопки «Добавить»; назовите его addButtonPressed:
или что-то подобное, объявив его в интерфейсе класса контроллера:
- (IBAction)addButtonPressed:(id)sender;
, а также сделав его целью вашей кнопки «Добавить» в IB.
Теперь вам нужно реализовать это действие в вашем классе контроллера ' s реализация; этот код предполагает, что объекты, которые вы добавили в контроллер массива, имеют размер NSString
s; в противном случае замените тип переменной new
на любой тип добавляемого объекта.
//Code is an adaptation of an excerpt from "Cocoa Programming for
//Mac OS X" by Aaron Hillegass
- (IBAction)addButtonPressed:(id)sender
{
//Try to end any editing that is taking place in the table view
NSWindow *w = [tableView window];
BOOL endEdit = [w makeFirstResponder:w];
if(!endEdit)
return;
//Create a new object to add to your NSTableView; replace NSString with
//whatever type the objects in your array controller are
NSString *new = [arrayController newObject];
//Add the object to your array controller
[arrayController addObject:new];
[new release];
//Rearrange the objects if there is a sort on any of the columns
[arrayController rearrangeObjects];
//Retrieve an array of the objects in your array controller and calculate
//which row your new object is in
NSArray *array = [arrayController arrangedObjects];
NSUInteger row = [array indexOfObjectIdenticalTo:new];
//Begin editing of the cell containing the new object
[tableView editColumn:0 row:row withEvent:nil select:YES];
}
Это будет затем вызываться, когда вы нажимаете кнопку «Добавить» и ячейку в первой столбец новой строки начнет редактироваться.