objective-c - Facebook Like 按钮未在 Cocoa WebView 中启动新窗口

标签 objective-c facebook macos cocoa webview

我正在使用 Cocoa WebView,它加载包含社交媒体按钮的 HTML 页面。当我单击 Facebook Like 按钮时,根本不会打开弹出窗口,但 Twitter 和 Google+ 等其他窗口工作正常并按预期启动弹出窗口。

同一个 HTML 页面在 Safari 中运行没有问题。

我相信我已经正确实现了 WebUIDelegate,并且无法想到还有什么可能导致此问题。有什么想法吗?

#pragma mark WebViewUIDelegate Methods

- (WebView *)webView:(WebView *) __unused sender createWebViewWithRequest:(NSURLRequest *)request
{
    NSWindow *window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, 400, 300) styleMask:NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask backing:NSBackingStoreBuffered defer:YES];
    [window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary];
    WebView *webView = [[WebView alloc] init];
    [webView setFrameLoadDelegate:self];
    window.contentView = webView;
    [webView.mainFrame loadRequest:request];
    [_popupWindows addObject:window];
    return webView;
}

- (WebView *)webView:(WebView *)sender createWebViewModalDialogWithRequest:(NSURLRequest *)request
{
    return [self webView:sender createWebViewWithRequest:request];
}

- (void)webViewRunModal:(WebView *)sender
{
    [sender.window makeKeyAndOrderFront:self];
}

- (void)webViewShow:(WebView *)sender
{
    [sender.window makeKeyAndOrderFront:self];
}

- (void)webViewClose:(WebView *)sender
{
    [_popupWindows removeObject:sender.window];
    [sender.window close];
}

最佳答案

显然我需要在 webView:createWebViewWithRequest: 中调用 makeKeyAndOrderFront: ...此处的示例 https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/DisplayWebContent/Tasks/MultipleWindows.html#//apple_ref/doc/uid/20002026-117294暗示这是必要的(因为 openUntitledDocumentAndDisplay:error: 将调用 makeKeyAndOrderFront:),而 webViewShow: 的文档似乎暗示显示窗口应该是它的专属责任。令人困惑。如果有人有更好的解释,欢迎。

关于objective-c - Facebook Like 按钮未在 Cocoa WebView 中启动新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23690205/

相关文章:

objective-c - iOS 中的 UIControlEvents 可以用 OR 运算吗?

ios - 是否可以子类化 UITableView 并使其具有基于单元格数量的固有内容大小?

ios - 与标准文本共享照片 - Facebook iOS SDK 4.x

android - Facebook Messenger 对话框回调不起作用

python - 有没有办法在 macOS Big Sur 上使用 SageMath?

ios - NSURLSession 将 token 发送回服务器以获取数据

iphone - 如何对 UILabel 的 textColor 进行动画处理?

iphone - facebook iphone sdk 注销问题!

linux - 在 vim 中复制/粘贴的默认缓冲区大小?

C++ 在 Mac OS X 上编译代码并在 Linux x86 上运行