如何调用-(IBAction)
How call in -(IBAction)
我是 objective-c 的新人。
需要制作一个按钮 link,它将在新的 window 中打开。为此,我需要执行 IBAction 来创建一个新的 window。
这添加 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;
}
此 link 用于按钮 :
- (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)];
请说明如何操作?
语法(type)
,例如(NSURL *)
,在方法声明中定义参数的类型,例如:
- (ERBrowser *)addWebView:(NSURL *)url
声明了一个方法 addWebView:
,它采用 NSURL *
类型的单个参数,并且在该方法中使用名称 url
.
引用该参数
在表达式中,语法(type)
是一个强制转换操作,一个改变其子表达式静态类型的操作-表达。例如:
(double)3
采用整数表达式 3
并将其转换为 double
值。
在您的方法调用中:
[self addWebView:(NSURL *)];
您正在调用 addWebView:
并将其作为参数传递给表达式的结果:
(NSURL *)
这是一个转换表达式的一半 - 您没有提供任何转换值。因此错误。
您需要的是 NSURL *
类型的 值 以传递给 addWebView:
,根据您的代码,此值将是 URL您要加载的页面。你必须决定你从哪里得到这个。
HTH
我是 objective-c 的新人。 需要制作一个按钮 link,它将在新的 window 中打开。为此,我需要执行 IBAction 来创建一个新的 window。 这添加 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;
}
此 link 用于按钮 :
- (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)];
请说明如何操作?
语法(type)
,例如(NSURL *)
,在方法声明中定义参数的类型,例如:
- (ERBrowser *)addWebView:(NSURL *)url
声明了一个方法 addWebView:
,它采用 NSURL *
类型的单个参数,并且在该方法中使用名称 url
.
在表达式中,语法(type)
是一个强制转换操作,一个改变其子表达式静态类型的操作-表达。例如:
(double)3
采用整数表达式 3
并将其转换为 double
值。
在您的方法调用中:
[self addWebView:(NSURL *)];
您正在调用 addWebView:
并将其作为参数传递给表达式的结果:
(NSURL *)
这是一个转换表达式的一半 - 您没有提供任何转换值。因此错误。
您需要的是 NSURL *
类型的 值 以传递给 addWebView:
,根据您的代码,此值将是 URL您要加载的页面。你必须决定你从哪里得到这个。
HTH