проблема с кодом - новичок - PullRequest
0 голосов
/ 02 октября 2010

Хорошо, вот мой код:

@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.

Как бы я это сделал?

Спасибо, Илия

Ответы [ 2 ]

0 голосов
/ 03 октября 2010

Ну, я думаю, вы ищете что-то вроде кнопки «Выполнить» в AMShellWrapperTest.app для вашего (версии) PseudoTTY.app (http://amath.colorado.edu/pub/mac/programs/PseudoTTY.zip). Правильно?

0 голосов
/ 03 октября 2010

Если вы хотите вызвать startTask откуда-то еще без предварительного создания экземпляра PtyView, тогда startTask должен быть статическим методом, а не методом экземпляра.

Поместите это в свой @interface:

+ (void)startTask;

Поместите это в вашу @ реализацию

+ (void)startTask
{
    // Code goes here
}

Поставьте это, когда вы хотите назвать это:

[PtyView startTask];

Примечания: + Означает, что это статический метод. Вы не можете получить доступ к переменным экземпляра из статического метода.

...