2015-05-01 172 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提醒應用程序中也是如此。