gpt4 book ai didi

objective-c - 在前向类中找不到属性 'frame'

转载 作者:行者123 更新时间:2023-12-03 17:39:31 27 4
gpt4 key购买 nike

首先:我对 cocoa 开发非常陌生。我想我的问题是非常明显的。

我需要知道加载后 WebView 的大小。为此,我找到了 answer已经,但我有一个问题。这是我的代码的相关部分。

应用程序委托(delegate):

    @implementation MDAppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {

//set ourselves as the frame load delegate so we know when the window loads
[self.webView setFrameLoadDelegate:self];

// set the request variable, which works and then load the content into the webView
[self.webView.mainFrame loadRequest:request];

}

- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)webFrame
{
NSLog(@"webView:didFinishLoadForFrame");
if([webFrame isEqual:[self.webView mainFrame]]) {
// some code ...
// and at some point I want to get the frame property of self.window
NSRect windowFrame = self.window.frame;
}
}

窗口属性在应用程序委托(delegate)的头文件中定义:

    @interface MDAppDelegate : NSObject <NSApplicationDelegate>
@property (weak) IBOutlet MDTransparentWindow *window;
@property (weak) IBOutlet WebView *webView;
@end

我找到了(看起来)very similar problem 的答案。 。解决方案是 #import <QuartzCore/QuartzCore.h>并在“构建阶段”选项卡中链接框架。我这样做了,但问题仍然存在。我也清理了我的项目(到目前为止我仍然不知道清理的作用,但有时它会有所帮助)但没有结果。

该窗口是我自己的类的实例TransparentWindow这是子类化 NSWindow 。当我开始写self.f在子类实现文件中xcode自动建议frame 。但当我写 self.window.f 时,这种情况并没有发生在 webView:didFinishLoadForFrame方法。

正如我所说,我是 cocoa 开发的新手。有什么提示吗?我可能错过了什么?

最佳答案

如果您只对类进行了前向声明,通常会收到此消息,例如

@class MyPhantasticClass;

编译器知道它是一个类,但不知道它的任何方法。您需要包含正确的头文件。

关于objective-c - 在前向类中找不到属性 'frame',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21992854/

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