我有一個NSWindow包含一個NSButton和一個NSTableView。基於NSTableView選擇啓用帶綁定的NSButton
我希望按鈕被啓用當且僅當表中至少包含一個項目,並且只選擇一個項目。 (該表不允許多個選擇。)
我該如何將按鈕的啓用綁定綁定到這種情況?
我有一個NSWindow包含一個NSButton和一個NSTableView。基於NSTableView選擇啓用帶綁定的NSButton
我希望按鈕被啓用當且僅當表中至少包含一個項目,並且只選擇一個項目。 (該表不允許多個選擇。)
我該如何將按鈕的啓用綁定綁定到這種情況?
嘗試綁定到陣列控制器的selectedObjects
,模型關鍵路徑count
,沒有值轉換器。
需要注意的是,如果你允許多項選擇,這將是不安全的:一方面,在count
可以很容易地既不YES
也不NO
;另一方面,如果用戶選擇了256個項目的倍數,則計數的最低字節將爲0,因此即使存在選擇,值BOOL
也將爲NO
。
我沒有ArrayController任何地方。表格視圖使用委託和數據源。 –
然後使用綁定對於這種情況有點無意義,不是嗎?爲選擇按鈕創建一個插座並直接設置其啓用狀態(通過委託消息)。 –
或者在模型中創建一個屬性'buttonEnabled'並綁定到該屬性。如果你真的想綁定到'NSTableView',你可以在'-awakeFromNib'方法中綁定'enabled'屬性到表視圖的'selectedRowIndexes.count'屬性。 –
這是一個古老的線程,但這裏是我的2美分: 使用和陣列控制器和按鈕的啓用狀態結合到
控制鍵:的selectedObjects 型號主要路徑:@count
工作正常。
在這裏的所有信息中,這是唯一適用於我的技術。 –
謝謝..我正要編寫一些代碼來創建一個新的布爾屬性:) –
不要忘記將表視圖的選擇綁定到數組控制器,而不僅僅是內容。 –
今天我遇到了這個問題,經過一番努力,我找到了它。
如果沒有在「主表」選擇我的按鈕應該被禁用:
問題我跑進:
NO = disabled
對於多個值,沒有選擇等Enabled
屬性綁定到主表的選擇並使用屬性(code
在我的情況),它是存在的。NSIsNotNil
啓用按鈕,如果在主表中選擇了某些東西。
這聽起來極像是一個移除/刪除按鈕的典型方式被啓用。綁定到控制器的-canRemove屬性是否足夠? –
您是否考慮切換到陣列控制器?它使這樣的事情變得非常簡單。 –