首先,我要说这是我第一个真正的Cocoa应用程序。这是一个简单的应用程序,基本上显示我的网站在一个无边框窗口中。我目前创建无边框窗口的方法如下:
- (void) awakeFromNib {
[window setStyleMask:NSBorderlessWindowMask];
[window setAcceptsMouseMovedEvents:YES];
[window setMovableByWindowBackground:YES];
[window setLevel:NSNormalWindowLevel];
}
这样做的问题在于,窗口中的WebView不会将鼠标悬停事件传递到加载页面上的元素,也不能提供在文本字段中输入的功能。我知道应该创建一个自定义窗口并将contentView移动到其中,但我太新手了,无法理解Objective-C的操作方法。
我还尝试了声明所有这些内容,但没有成功:
@implementation specikAppDelegate
@synthesize window;
@synthesize webView;
- (BOOL) canBecomeKeyWindow { return YES; }
- (BOOL) canBecomeMainWindow { return YES; }
- (BOOL) acceptsFirstResponder { return YES; }
- (BOOL) becomeFirstResponder { return YES; }
- (BOOL) resignFirstResponder { return YES; }
...
@end
此外,我希望能通过点击和拖动窗口来移动窗口,不过这只是一个小想法。我在网上进行了广泛的搜索,但没有找到解决方法。
我的.h文件内容(以防万一):
@interface specikAppDelegate : NSObject <NSApplicationDelegate> {
IBOutlet NSWindow *window;
IBOutlet WebView *webView;
}
@property (assign) IBOutlet NSWindow *window;
@property (nonatomic, retain) IBOutlet WebView *webView;
- (IBAction)openAboutPanel:(id)sender;
@end
任何帮助都将不胜感激,就像我所说的,我对Objective-C和Cocoa的世界非常陌生,但我的背景是PHP开发。
-canBecomeKeyWindow
? - user557219