好的,这是我目前的代码:
@implementation PtyView
- (id)initWithFrame:(NSRect)frame;
{
if (self = [super initWithFrame: frame])
{
[self setFont:[NSFont fontWithName:@"Courier" size:0.0]];
[self startTask];
}
return self;
}
- (void)keyDown:(NSEvent *)event
{
const char * typein = [[event characters] UTF8String];
[masterHandle
writeData:[NSData dataWithBytes:typein length:strlen(typein)]];
}
...
@end
问题是我想从另一个实现中触发“startTask”但是,如果我只是“startTask”它将不显示输出,因为我没有使用initWithFrame。
我该怎么做?
谢谢, 利亚
答案 0 :(得分:0)
如果你想在没有先创建PtyView实例的情况下从其他地方调用startTask,那么startTask必须是静态方法,而不是实例方法。
将它放在你的@interface中:
+ (void)startTask;
将它放在@implementation
中+ (void)startTask
{
// Code goes here
}
想要打电话时放这个:
[PtyView startTask];
注意: +表示它是一种静态方法。 您无法从静态方法访问实例变量。
答案 1 :(得分:0)
嗯,我想,您正在为您的(版本)PseudoTTY.app(http://amath.colorado.edu/pub/mac/programs/PseudoTTY.zip)寻找AMShellWrapperTest.app中的“执行”按钮。正确?