NSTableView event and backspace (delete row) - fieldeditor / firstresponder?

Is it possible for my NSTableView to accept deleteevnt (backspace og even cmd + backspace)? I have an NSMenu where I have a delete-menu-item element associated with my first responder in nib.

Any pointers?

+5
source share
4 answers

You can subclass NSTableView by overriding keyDownas follows:

- (void)keyDown:(NSEvent *)theEvent
{

    unichar key = [[theEvent charactersIgnoringModifiers] characterAtIndex:0];
    if(key == NSDeleteCharacter) 
    {

        [self deleteItem];
        return;
    }

    [super keyDown:theEvent];

}

Then make sure that any NSTableView you want to use for deletion uses your subclass in Interface Builder instead of the usual NSTableView.

You can implement the method - (void)deleteItem, for example, as follows:

- (void)deleteItem
{
    if ([self numberOfSelectedRows] == 0) return;

    NSUInteger index = [self selectedRow];

    [documentController deleteItemWithIndex:index];

}
+2

, :

  • +/- IB deleteRecord IBAction.
  • delete (-), IB, Attributes Inspector > Button > Key Equivalent
  • , , "/"

, , deleteRecord, Backspace

+7

- :

  • IB , , , backspace.
  • , . , .
  • .

, , . . - (BOOL)validateUserInterfaceItem:(id)anItem.

+6

NSViewController First Responder.

Delete Edit delete: . Delete, delete: ( ).

  • , Delete ( ⌘⌫)
  • IBAction

    Swift: @IBAction func delete(_ sender: AnyObject)

    Objective-C: -(IBAction)delete:(id)sender

    () .

.

+3
source

All Articles