簡體   English   中英

針對FirstResponder使用視圖驗證NSToolbarItem

[英]Validating NSToolbarItem with View against FirstResponder

我有一個工具欄項目,其中包含一個視圖(一個NSButton ),並且該視圖的目標設置為nil ,因此在觸發操作時它將查找響應者鏈。 不過,我在嘗試如何針對第一響應者進行驗證時遇到了麻煩。

我已經將NSToolbarItem子類化並實現了-(void)validate 我發現的引用說您應該能夠通過調用[[[self view] window] firstResponder]來獲得第一個響應者,然后查看響應者鏈是否實現了NSToolbarItemValidationNSUserInterfaceValidations並調用了適當的驗證方法。

但是,當我調用[[self view] window] ,我將nil作為窗口返回,因此無法檢索第一響應者。

我不確定是否會有所作為,但我是在XIB中創建工具欄,而不是用代碼編寫工具欄。

在NSToolbar.h中,有一個引用包含窗口的ivar,因此我可以通過調用[[[self toolbar] valueForKey:@"window"] firstResponder]來找到第一個響應者,但這有點[[[self toolbar] valueForKey:@"window"] firstResponder] ,我可以d傾向於使用記錄在案的/更穩定的東西。

您無需手動驗證。 對於需要驗證的每個菜單項或工具欄,該應用程序在響應程序鏈中的每個對象上調用-validate(或其適當的變體),直到找到返回YES(表示它支持每個菜單或工具欄項的操作)的對象為止。 ),或找不到一個。 如果找到一個,則您的工具欄項或菜單項已啟用。 如果不是,則將其禁用。 至少,這是一般理論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM