OSX App,NSTextField仅响应Force Click

时间:2016-02-25 14:21:59

标签: xcode macos nstextfield 3dtouch

我正在编写我的第一个OS X应用程序,但我遇到了问题。我将NSTextField放在NSTableViewCell中。单击文本字段不会执行任何操作。但是,强制单击将激活文本字段以输入文本。

这是因为它嵌入在一个单元格中吗?

到目前为止,我的代码非常简单:

- (void)drawRect:(NSRect)dirtyRect {
    [super drawRect:dirtyRect];
    NSScrollView * tableContainer = [[NSScrollView alloc] initWithFrame:self.bounds];
    mainTableView = [[NSTableView alloc] initWithFrame:NSMakeRect(0, 0, 1200, self.frame.size.height)];
    mainTableView.autoresizingMask = NSViewWidthSizable|NSViewHeightSizable;

   /// {creating columns here}

    [tableContainer addSubview:mainTableView];
    mainTableView.backgroundColor = [NSColor whiteColor];
    mainTableView.rowHeight = 25;
    [mainTableView setDelegate:self];
    [mainTableView setDataSource:self];

    [tableContainer setDocumentView:mainTableView];

    [tableContainer setHasVerticalScroller:YES];
    [self addSubview:tableContainer];

    [mainTableView reloadData];
}

- (NSView *)tableView:(NSTableView *)tableView
   viewForTableColumn:(NSTableColumn *)tableColumn
                  row:(NSInteger)row {
    NSView *view = [[NSView alloc] initWithFrame:CGRectMake(0, 0, tableColumn.width, tableView.rowHeight)];
    NSTextField *tf = [[NSTextField alloc] initWithFrame:view.bounds];
    tf.stringValue = @"!";
    tf.editable = YES;
    tf.delegate = self;
    [view addSubview:tf];

    return view;
}

0 个答案:

没有答案