1
我想在我的ObjC應用程序中禁用在菜單欄中剪切和/或粘貼。我知道這可能在iOS中使用 - (BOOL)canPerformAction:(SEL)aSelector withSender:(id)發件人在ObjC中禁用剪切和/或粘貼
有沒有類似的MacOS?
謝謝
我想在我的ObjC應用程序中禁用在菜單欄中剪切和/或粘貼。我知道這可能在iOS中使用 - (BOOL)canPerformAction:(SEL)aSelector withSender:(id)發件人在ObjC中禁用剪切和/或粘貼
有沒有類似的MacOS?
謝謝
還有就是NSUserInterfaceValidations Protocol,用於驗證項目的通用協議。您只需實施validateUserInterfaceItem:
方法並返回NO即可禁用該操作。
- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)anItem {
if([anItem action] == @selector(cut:) ||
[anItem action] == @selector(copy:) ||
[anItem action] == @selector(paste:)) return NO;
return [self respondsToSelector:[anItem action]];
}
還有一個NSMenuValidation Protocol,它執行相同的功能,但僅用於驗證的菜單項,而不是所有界面項目。如果你沒有實現它,系統將回退到標準驗證。
我馬上試試,非常感謝! :) – user732274
不好意思,我要在哪裏放這段代碼?在應用程序委託?我從來沒有使用這個協議,所以我不知道從哪裏開始。我必須以某種方式「連接」菜單項嗎?謝謝 – user732274
他們應該被置於任何接受行動的位置。這通常是包含數據的控件,如文本視圖,但可以是文檔或窗口控制器。如果您打算讓它們始終禁用,您可以將目標更改爲其他對象,以便您只需將方法添加到一個對象。 – ughoavgfhw