【发布时间】:2015-03-21 20:19:24
【问题描述】:
我是 Objective-c 的新手。 需要制作一个按钮链接,它将在新窗口中打开。为此,我需要执行 IBAction 来创建一个新窗口。 这个添加 WebView :
- (ERBrowser *)addWebView:(NSURL *)url{
for (NSView *view in browserViews)
[view setHidden:true];
ERTabModel *newModel = [[ERTabModel alloc] init];
NSTabViewItem *newItem = [[NSTabViewItem alloc] initWithIdentifier:newModel];
[tabView addTabViewItem:newItem];
[tabView selectTabViewItem:newItem];
ERBrowser *browserView = [[ERBrowser alloc] initWithFrame:mainView.frame];
[browserView setAutoresizingMask:(NSViewWidthSizable | NSViewHeightSizable)];
[mainView addSubview:browserView];
[browserViews addObject:browserView];
[browserView setUIDelegate:self];
[browserView setFrameLoadDelegate:self];
if (url)
[[browserView mainFrame] loadRequest:[NSURLRequest requestWithURL:url]];
return browserView;
}
此按钮链接:
- (IBAction)bookmarkButton:(NSButton*)sender
{
ERBrowser *browserView = [browserViews objectAtIndex:[tabView indexOfTabViewItem:[tabView selectedTabViewItem]]];
[[browserView mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[sender alternateTitle]]]];
[self addNewTab:(id)];
这个 IBAction 添加新标签:
- (IBAction)addNewTab:(id)sender {
[self addWebView:(NSURL *)];
}
我无法理解这是一个原因 addWebView [self addWebView:(NSURL *)];
以及如何添加addNewTab [self addNewTab:(id)];
请解释一下怎么做?
【问题讨论】:
-
IBAction是编译器识别的特殊关键字。它用于识别在编辑 NIB 时可以选择为“操作”的方法。它没有其他功能/意义,而且,如果没有在 NIB 编辑器中“链接”,它根本没有任何作用。 -
谢谢你,我能理解。这里的问题是完全不同的。我需要这个 IBAction 传递函数,但我不明白如何将它传递给当前案例。你什么时候得到这样的静态 URL
[self addWebView:[NSURL URLWithString:@"http://example.com"]];我不明白如何为另一个函数调用非静态 URL[self addWebView:[NSURL URLWithString:HERE WOT WHRITE]]; -
“IBAction 传递函数”是什么意思? IBAction 与访问 URL 有什么关系?
-
我需要打开一个新选项卡 addNewTab 面板,添加到它并打开导致它的 WebView url。就像我在 NSTextField 中输入 URL 一样,它会在新窗口中打开并加载我写的 url
-
抱歉这个问题被取消了。我做错了一切,已经明白如何做到这一点。感谢您的帮助。
标签: objective-c macos cocoa ibaction