Я делаю свое первое приложение для Mac OS X, и у меня возникла проблема.IBAction в представлении ячейки таблицы не будет запущен
Я создал NSTableView в моем окне, связанном с NSArrayController, и я хотел бы вызвать метод после остановки, чтобы отредактировать ячейку текстового поля. Поэтому я выбрал для вызова действия, когда конец редактирования, как вы можете увидеть на следующем скриншоте:
После, я создал IBAction для него:
Он генерируется этот код в моем AppDelegate.h:
- (IBAction)stopEditingHeaderNameCell:(id)sender;
А потом я редактировал IBAction в AppDelegate.m в порядке чтобы показать сообщение NSLog при редактировании ячейки:
- (IBAction)stopEditingHeaderNameCell:(id)sender
{
NSLog(@"test");
}
Однако, когда я перестану редактирования ячейки, нажав войти или нажав на другой элемент, ничего не происходит. Я уже пытался применить этот IBAction к NSTextField, и он работает отлично, но он не вызывает IBAction при применении к этой ячейке текстового поля.
Может ли кто-нибудь помочь мне решить эту проблему?
Спасибо!
Спасибо, он работал как шарм. Теперь я пытаюсь получить некоторые свойства параметра NSNotification (obj), который отправляется этой функции. Я попытался получить некоторые данные, такие как [obj value], но я получаю некоторые ошибки, например: «- [NSConcreteNotification key]: непризнанный селектор, отправленный экземпляру 0x7fcf90d66150» и «Исключение обнаружено при обработке ввода ключа». Как я могу поймать некоторую информацию, такую как ее значение, номер строки и прочее, чтобы я мог манипулировать другими ячейками своей строки на основе ее содержимого? –
[объект obj] даст вам ссылку на представление таблицы, поэтому вы можете использовать [[объект obj] selectedRow], чтобы узнать, какая строка была выбрана. Эта строка: [[obj.userInfo valueForKey: @ "NSFieldEditor"] string] получит новое значение строки. – rdelmar
Хотя [[obj.userInfo valueForKey: @ "NSFieldEditor"] string] возвращает новое содержимое успешно, [[объект объекта obj] выбранRow] возвращает «(null)», когда я печатаю его с помощью NSW (@ "% @" , [tableView selectedRow]); '. P.S .: Я сохранил объект [obj] в переменной tableView с помощью 'NSTableView * tableView = (NSTableView *) [объект obj];' –