Hi Leute,
ich hab ein seltsames Problem mit ner NSTableView - view based. Die TableView leg ich per Interfacebuilder an, die einzelnen Zeilen manuell. Das Dumme ist - immer wenn ich per Maus eine Zeile auswähle (nicht auf eine bereits ausgewählte klicke sondern auf eine nicht ausgewählte klicke um die Auswahl zu ändern), springt die TableView sofort bzw. nach der üblichen Verzögerung in den Edit-Modus. Das allerdings nur dann, wenn ich eine action oder doubleAction zuweise. Weise ich keine action zu, muss ich (wie es sein soll) erst auf eine ausgewählte Zeile klicken, um das Editfeld zu aktivieren. Was mache ich falsch? Hier der Code (alle Einstellungen im Interfacebuilder sind auf Standard):
Alles anzeigen
ich hab ein seltsames Problem mit ner NSTableView - view based. Die TableView leg ich per Interfacebuilder an, die einzelnen Zeilen manuell. Das Dumme ist - immer wenn ich per Maus eine Zeile auswähle (nicht auf eine bereits ausgewählte klicke sondern auf eine nicht ausgewählte klicke um die Auswahl zu ändern), springt die TableView sofort bzw. nach der üblichen Verzögerung in den Edit-Modus. Das allerdings nur dann, wenn ich eine action oder doubleAction zuweise. Weise ich keine action zu, muss ich (wie es sein soll) erst auf eine ausgewählte Zeile klicken, um das Editfeld zu aktivieren. Was mache ich falsch? Hier der Code (alle Einstellungen im Interfacebuilder sind auf Standard):
Quellcode
- #import "MyAppDelegate.h"
- @interface MyAppDelegate()
- @property (weak) IBOutlet NSTableView *tableView;
- @end
- @implementation MyAppDelegate
- - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
- {
- // Insert code here to initialize your application
- self.tableView.target = self;
- self.tableView.action = @selector(tableViewClicked:);
- }
- - (void)tableViewClicked:(NSTableView *)sender
- {
- NSLog(@"action raised");
- }
- - (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
- {
- NSTableCellView *view = [NSTableCellView new];
- NSRect textFieldRect = NSMakeRect(5, 1, 100, 17);
- NSTextField *textField = [[NSTextField alloc] initWithFrame:textFieldRect];
- [textField setBordered:NO];
- textField.drawsBackground = NO;
- textField.font = [NSFont systemFontOfSize:12.0];
- [textField.cell setLineBreakMode:NSLineBreakByTruncatingMiddle];
- textField.stringValue = [NSString stringWithFormat:@"Row #%ld", row];
- view.textField = textField;
- [view addSubview:textField];
- return view;
- }
- - (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(NSInteger)row
- {
- return row != 0;
- }
- - (BOOL)tableView:(NSTableView *)tableView isGroupRow:(NSInteger)row
- {
- return row == 0;
- }
- - (void)tableViewSelectionDidChange:(NSNotification *)notification
- {
- NSLog(@"selection did change!");
- }
- - (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
- {
- return 10;
- }
- @end