小编spe*_*cik的帖子

如何在Objective-C + Cocoa中创建自定义无边框NSWindow?

首先让我说这是我的第一个真正的Cocoa应用程序.这是一个简单的应用程序,几乎在无边框窗口中显示我的网站.我正在创建无边框窗口的方式是使用以下方法:

- (void) awakeFromNib {
    [window setStyleMask:NSBorderlessWindowMask];
    [window setAcceptsMouseMovedEvents:YES];
    [window setMovableByWindowBackground:YES];
    [window setLevel:NSNormalWindowLevel];
}
Run Code Online (Sandbox Code Playgroud)

这样做的问题在于,窗口中的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
Run Code Online (Sandbox Code Playgroud)

另外,我希望能够通过点击并拖动它来移动窗口,但这是一个想法.我在网上广泛搜索过,找不到解决方法.

我的.h文件的内容(以防万一):

@interface specikAppDelegate : NSObject <NSApplicationDelegate> {
    IBOutlet NSWindow *window;
    IBOutlet WebView *webView;
}

@property (assign) IBOutlet NSWindow *window;
@property …
Run Code Online (Sandbox Code Playgroud)

xcode cocoa objective-c nswindow

4
推荐指数
1
解决办法
7953
查看次数

标签 统计

cocoa ×1

nswindow ×1

objective-c ×1

xcode ×1