2017-09-27 64 views
0

我與SWIFT 4工作MacOS和我有一個NSButton,應禁用我NSTableView的所有元素(文本框,按鈕,...)禁用的tableview與所有元素

在我的按鈕的IBAction爲我此代碼行:

myTableView.deselectAll(nil) 
myTableView.isEnabled = false 

這很好,但我發現了一點「bug」。 如果我選擇我的桌面視圖(編輯模式) 的文本框,然後按下我的按鈕,桌面視圖將被禁用,並且所有選定的行都將取消選擇,但是我可以毫無問題地編輯我的文本框的內容,因爲「編輯模式「仍然是。

必須手動禁用我在tableview中的所有文本字段,還是有一個優雅的技巧?

回答

0

你可以失去的NSTextField以響應

view.window?.makeFirstResponder(view.window) 

這應該做的伎倆。

+0

小小的更正:我可以在我的按鈕按下之前編輯**所有**我選擇的那一行的文本框。用你的代碼,我選擇的文本域失去了焦點。但我可以選擇這個和我上一次選擇的行的其他文本字段並編輯它們,而不會出現問題oOO其他所有行和文本字段都「禁用」 – Ghost108

+0

您是否取消選擇所有行並禁用表視圖? – Raymond

+0

'myTableView.deselectAll(nil) myTableView.isEnabled = false view.window?.makeFirstResponder(view.window)' – Ghost108