gpt4 book ai didi

objective-c - 从另一个类访问属性,单独的 XIB

转载 作者:行者123 更新时间:2023-12-03 18:07:24 24 4
gpt4 key购买 nike

这可能是一个简单的问题,但请耐心等待,我是个新手,只是在尝试。 MacOS,而不是 iOS,假设我有两个单独的 XIB 文件(MainMenu.xib 和 AnotherWindow.xib)。我使用 MainMenu.xib 中的文件菜单打开 AnotherWindow.xib,并在打开时禁用文件菜单:

- (IBAction)OpenAnotherWindow:(id)sender {
if (!anotherWindow) {
anotherWindow = [[AnotherWindow alloc] initWithWindowNibName:@"AnotherWindow"];

}
[anotherWindow showWindow:self];
[self.MenuItem setEnabled:NO];

在 AnotherWindow.xib 中,我想在文件菜单关闭时重新启用它:

- (void)windowWillClose:(NSNotification *)aNotification {
[self.MenuItem setEnabled:YES];
}

我遇到的问题是我无法从第二个类访问 MenuItem,因为它是 MainMenu.xib 的一部分 - 所以我只是收到错误:在 [self.MenuItem setEnabled: 类型的对象上找不到属性:是的];在 AnotherWindow.xib 中

所以我想我的问题是:我如何访问像

这样的属性
@property (weak) IBOutlet NSMenuItem *MenuItem;

那是在 AnotherWindow.xib 的 MainMenu.xib 中。

最佳答案

不要手动启用和禁用菜单项,而是覆盖函数 validateUserInterfaceItem在包含 OpenAnotherWindow 的类中IBA Action 。

validateUserInterfaceItem函数采用 NSValidatedUserInterfaceItem 类型的项目作为一个论点。检查项目的操作是否为 OpenAnotherWindow 。如果是,检查是否 anotherWindow开了。如果它是打开的,则返回 false,这将禁用该菜单项。如果窗口未打开,则返回 true,这将启用菜单项。我的 Objective-C 已经生锈了,所以我没有代码 list 给你。

关于objective-c - 从另一个类访问属性,单独的 XIB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61958095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com