2015-05-01 274 views
3

我有一个基于NSTableView的视图,在我的自定义和子类视图中有一些标签。其中一个标签应该是可编辑的,因此我将此NSTextField设置为可编辑。NSTableView中的可编辑NSTextField

但现在我有两个问题,我解决不了:

1)如果我把鼠标移动到可编辑的NSTextField,光标不会更改为IBeamCursor(编辑光标)。

2)我需要双击标签,才能编辑。我想要点击一下鼠标。我在这里找到了一些针对此问题的解决方案,最好的方法是覆盖acceptsFirstResponder始终返回true,但是,然后单击NSTextField将选择整个文本,而不是将光标放置在单击的位置。

回答

3

对不起...这是重复的。我发现这一点:

NSTableView - select row and respond to mouse events immediately

你必须继承NSTableView。我的SWIFT代码:

class TableViewEditing: NSTableView { 

    ... 

    override func validateProposedFirstResponder(responder: NSResponder, forEvent event: NSEvent?) -> Bool { 
     return true 
    } 
} 

编辑

只是一个缺点:有时进入编辑模式,似乎文本只是短期内选择和取消。但是你可以看到,这是一个可可问题,例如在Apple提醒应用程序中也是如此。