在转发类中找不到属性"框架"



首先:我对可可开发很陌生。我想我的问题很明显。

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

应用程序代表:

@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;
}
}

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

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

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

该窗口是我自己的类TransparentWindow的一个实例,它是NSWindow的子类。当我开始在子类实现文件中写入self.f时,xcode会自动建议使用frame。但是当我在webView:didFinishLoadForFrame方法中写入self.window.f时,这种情况不会发生。

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

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

@class MyPhantasticClass;

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

相关内容

  • 没有找到相关文章