Objective c 在模式NSSheet中使用Webview
我有一个类似的问题。我希望在NSSheet中有一个webview,我在其中执行一些身份验证以检索API令牌 我用相应的xib文件创建了一个新的Objective c 在模式NSSheet中使用Webview,objective-c,macos,webkit,Objective C,Macos,Webkit,我有一个类似的问题。我希望在NSSheet中有一个webview,我在其中执行一些身份验证以检索API令牌 我用相应的xib文件创建了一个新的NSWindowController子类。以下是我开始NSSheet的方式: - (IBAction)startAuthentication:(NSButton *)sender { self.authController = [[AuthenticationWindowController alloc] initWithWindowNibName
NSWindowController
子类。以下是我开始NSSheet的方式:
- (IBAction)startAuthentication:(NSButton *)sender {
self.authController = [[AuthenticationWindowController alloc] initWithWindowNibName:@"AuthenticationWindow"];
[[NSApplication sharedApplication] beginSheet:self.authController.window
modalForWindow:[self.exportManager window]
modalDelegate:self
didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:)
contextInfo:nil];
}
在此authenticationWindowController的windowDidLoad回调中,我将webview定向到URL:
- (void)windowDidLoad
{
[super windowDidLoad];
[[self.webView mainFrame]loadRequest:[NSURLRequest requestWithURL:authURL]];
}
乍一看,它看起来很棒:如果我按下按钮,就会调用startAuthentication
操作方法,并将新窗口设置为父窗口的动画,并加载authURL。网站正确显示,其HTML表单包含两个输入字段(用户名和密码)
问题是,我可以点击页面,但如果我试图点击一个文本字段,使该字段获得焦点,它就不起作用。网站表单的文本字段中没有光标,每次击键后我都会听到NSBeep()的声音
我对这个主题做了一些研究,发现了两个参考文献:
这没有什么大问题,我只是试了一下。除此之外一定还有代码?你能把范围缩小到床单吗?顺便说一句:我的样本:
尽管如此,模态运行模式和网络视图/定时器/网络并不是很防水:)
因为:当您通过NSApp中的一种方便方法进入模态时,runloop仅以非常有限的方式运行:/ 这回答了1和2,但还没有回答3——请提供一个我们可以修复的示例项目:D它在这里工作。。。而且可能与工作表无关!?我刚刚做了一个样本项目。这是一个Aperture exporter插件,所以我不确定插件窗口本身是否在模式下以runloop运行。然而,极简主义的例子似乎是可行的。我还在调查。好的,现在它起作用了。我所做的只是删除XIB并从头开始。非常感谢您的调查。