可可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];
答
NSMenuItem具有可以被用于任意的整数与菜单项相关联-tag
和-setTag:
方法。该整数很容易成为数组中主机名的索引。
目标/操作方法采用单一参数,即发件人。发件人是触发目标上的操作方法的UI元素。为了保持MVC固有的分离,通常不直接将数据推送到UI元素中;用户界面 - 视图层 - 对控制器执行操作,然后控制器从模型中选取适当的数据并执行所需的任何操作。
+0
gotya!谢谢! ;-) – 2009-12-16 19:06:20
不知道为什么有人试图downvote这个问题 - 这是一个非常好的问题! – bbum 2009-12-17 17:46:31
请注意,
goToTerminal:
中存在内存泄漏,变量as
从不(自动)释放。 – 2009-12-20 00:41:05