Как я могу перемещаться по моему табличному виду с помощью клавиш со стрелками. Так же, как setAction:
или setDoubleAction
, но вместо того, чтобы реагировать на клики, реагируйте с помощью клавиш со стрелками вверх или вниз по столу.NSTableView перемещаться с помощью клавиш со стрелками
ответ
В вашем представлении делегат таблицы реализует tableView:shouldSelectRow:
. Сделайте все, что хотите, затем верните YES
. Он будет активирован при выборе элементов в представлении таблицы.
отлично работает. Благодаря!!! –
При попытке этого решения я обнаружил, что при перемещении вверх и вниз с помощью клавиш со стрелками, хотя shouldSelectRow отвечает YES каждый раз, мой метод tableViewSelected не вызывался. То, что я закончил, - это вызов отдельной процедуры из tableViewSelected и shouldSelectRow для выполнения других аспектов отображения, которые требуются при каждом изменении фокуса. Наверное, это то, что ответ означает «Делайте все, что захотите». –
Я не уверен, что вы имеете в виду, потому что, когда я выбираю что-то в таблице, я могу перемещаться вверх и вниз в таблице с помощью клавиш со стрелками. Но если вы хотите настроить поведение больше, у меня есть решение. В одном из моих приложений я хотел обнаружить, когда нажата клавиша возврата или ввода, а затем выполните некоторые действия соответственно. Я создал новый класс и сделал его подклассом NSWindow. В построителе интерфейса я устанавливаю главное окно этого класса. Затем я переопределяю метод keyDown: NSWindow в этом подклассе. Поэтому, когда мое главное окно находится впереди (первый ответчик), тогда нажатия клавиш обнаруживаются и фильтруются методом. Я уверен, что вы можете сделать что-то подобное для стрелочных прессов. Возможно, вы захотите сделать свой класс подклассом NSTableView вместо NSWindow в зависимости от того, как вы хотите поймать нажатия клавиш. Я хотел, чтобы он работал для всего приложения, но вы можете захотеть его работать, только когда представление таблицы является первым ответчиком.
- (void)keyDown:(NSEvent *)theEvent {
if ([theEvent type] == NSKeyDown) {
NSString* characters = [theEvent characters];
if (([characters length] > 0) && (([characters characterAtIndex:0] == NSCarriageReturnCharacter) || ([characters characterAtIndex:0] == NSEnterCharacter))) {
// do something here when return or enter is pressed
}
}
}
Я не понимаю, почему люди не понимают, что я прошу. Все, что я хочу сделать, это использовать клавиши со стрелками в качестве замены для щелчка. Поэтому, если я стрелка вниз до строки x, он будет делать действие так же, как «setAction» делает для нажатия –
Вы уверены, что не имеете смысла, потому что стрелки используются для выбора, а не для выполнения каких-либо действий. Действие, которое будет применено к ОТДЕЛЬНОМУ ПУНКТУ, обычно устанавливается с помощью свойства «действие» или «двойное действие» TableView.
Нажатие на стол-строку делает две разные вещи.
пытается выбрать строку таблицы (иногда таблица-строка может ОТКАЗЫВАЕТСЯ быть выбрана, поэтому существует «shouldSelect» метод делегата).
Если был сделан новый выбор, выполняется действие (с таблицейView в качестве отправителя). Там вы можете спросить таблицу о текущем выборе и сделать все, что вам нужно.
Пожалуйста, обратите внимание на ситуацию, когда есть НЕСКОЛЬКО выбранные строки или выбранные столбцы или многие другие сложные ситуации.
В вашем случае --- что я рекомендовал бы, что вы реализуете
selectionDidChange: (NSNotigivation) уведомление;
NSTableView вызов делегата. Это называется ПОСЛЕ выбора, и вы уже знаете новый текущий выбор и делаете все, что хотите, с выбранными элементами.
aha! Вы случайно сделали BREAK NSTableView, выполнив это?
@implementation NSTableView (DeleteKeyCategory)
-(void) keyDown: (NSEvent *) event
{
// ... do something ...
[super keyDown:event];
}
@end
Для меня это было порочным побочным эффект ЗАМЕНЫ KeyDown NSTableView в: рутине, и она сломалась клавишами управления курсором. (вид, подобный swizzling)
Уроки, которые я узнал: - избегайте keyDown: рутина вообще. - подклассификация Apple NSControls сохранит работу в долгосрочной перспективе.
Это тип ошибки, который делает использование NSTableView очень расстраивающим. Может быть, Apple может обнаружить такие вещи в статическом анализаторе?
да вот почему я здесь;) Я забыл называть супер –
- 1. Клавиши со стрелками с NSTableView
- 2. Как перемещаться по tabcontrol с помощью клавиш со стрелками?
- 3. Невозможно перемещаться между текстовыми полями с помощью клавиш со стрелками
- 4. Как перемещаться между кнопками с помощью клавиш со стрелками
- 5. struts2 автозаполнение: перемещаться по клавишам с помощью клавиш со стрелками
- 6. React: Как перемещаться по списку с помощью клавиш со стрелками
- 7. Angular2 Навигация с помощью клавиш со стрелками
- 8. Перемещение JLabel с помощью клавиш со стрелками
- 9. Распознавание клавиш со стрелками с помощью stdin
- 10. Перемещение входов с помощью клавиш со стрелками
- 11. Навигация JRadioButton с помощью клавиш со стрелками
- 12. Навигация с помощью клавиш со стрелками
- 13. Прокрутка JScrollPane с помощью клавиш со стрелками
- 14. прокрутки DIV с помощью клавиш со стрелками
- 15. Отключить навигацию с помощью клавиш со стрелками
- 16. предотвращает прокрутку с помощью клавиш со стрелками
- 17. Перемещение прямоугольника с помощью клавиш со стрелками
- 18. Использование клавиш со стрелками
- 19. Имитировать клавиши со стрелками «j» и «k» в NSTableView?
- 20. Могу ли я перемещаться в поле со списком wpf с помощью клавиш со стрелками вместо вкладки?
- 21. Ячейка ячейки сетки данных WPF с помощью клавиш со стрелками
- 22. Перемещение по форме с помощью клавиш со стрелками
- 23. Перейдите в диалоговом окне Windows с помощью клавиш со стрелками
- 24. Коды клавиш для клавиш со стрелками
- 25. Osascript коды клавиш для клавиш со стрелками
- 26. GridView данные с помощью клавиш со стрелками с помощью vb.net
- 27. Перемещение изображения с помощью клавиш со стрелками с помощью JavaScript
- 28. AutoHotkey для клавиш со стрелками
- 29. unicode для клавиш со стрелками?
- 30. производить вывод клавиш со стрелками
Этот вопрос не имеет смысла. Не могли бы вы прочитать его еще раз? Вы хотите реагировать на то, что кто-то просматривает ваш стол? –
есть. Подобно тому, как «setAction» работает с кликами, но мне нужно что-то похожее на работу с клавишами со стрелками. –
Клавиши со стрелками «просто работают», ничего лишнего не требуется. – junglecat