Если вы подключите табличное представление к действию в IB, а затем вызовите setDoubleAction
для него, больше не нужно делать дополнительный вызов к setTarget
. Однако, если вы хотите получить только сообщение двойного щелчка, и вы не подключили табличное представление к действию в IB, вам придется позвонить setTarget
.
Представление таблицы отправит action
и doubleAction
к одной и той же цели. Вы можете представить себе, что NSTableView реализован так:
@implementation NSTableView
- (void)theUserClickedOnMe
{
[self sendAction:[self action] to:[self target];
}
- (void)theUserDoubleClickedOnMe
{
[self sendAction:[self doubleAction] to:[self target]];
}
@end
А то, что вы делаете в IB, выглядит примерно так:
- (void)userConnectedControl:(NSControl *)control
toAction:(SEL)action
ofObject:(id)object
{
[control setTarget:object];
[control setAction:action];
}
Реальные реализации не близки к этому, но это фактически то, что происходит.