可可Xcode - 如何将一个变量传递给函数

可可Xcode - 如何将一个变量传递给函数

问题描述:

我想弄清楚如何将一个变量(在我的情况下是主机名)传递给我从编程插入的“菜单项”创建的函数。可可Xcode - 如何将一个变量传递给函数

#function 

-(void)goToTerminal:(NSString *)hostname { 
    NSString *s = [NSString stringWithFormat:@"tell application \"Terminal\" to do script \"ssh [email protected]%@\"", hostname]; 
    NSAppleScript *as = [[NSAppleScript alloc] initWithSource: s]; 
    [as executeAndReturnError:nil]; 
} 

# adding menu item in another function 
[NSString *hostname = [NSString stringWithString:@"some.host"]]; 
NSMenuItem *subhostline = [[[NSMenuItem alloc] initWithTitle:sshtohost action:@selector(goToTerminal:) keyEquivalent:@""]autorelease]; 
[subhostline setTarget:self]; 
+0

不知道为什么有人试图downvote这个问题 - 这是一个非常好的问题! – bbum 2009-12-17 17:46:31

+0

请注意,goToTerminal:中存在内存泄漏,变量as从不(自动)释放。 – 2009-12-20 00:41:05

NSMenuItem具有可以被用于任意的整数与菜单项相关联-tag-setTag:方法。该整数很容易成为数组中主机名的索引。

目标/操作方法采用单一参数,即发件人。发件人是触发目标上的操作方法的UI元素。为了保持MVC固有的分离,通常不直接将数据推送到UI元素中;用户界面 - 视图层 - 对控制器执行操作,然后控制器从模型中选取适当的数据并执行所需的任何操作。

+0

gotya!谢谢! ;-) – 2009-12-16 19:06:20