在IBAction方法之外更改NSTextView内容

时间:2014-05-22 00:07:59

标签: objective-c methods nstextview

我试图修改NSTextView对象的字符串内容。到目前为止,我已经能够使用以下代码。

.h文件

#import "AppDelegate.h"

@interface InterfaceManager : AppDelegate {
    IBOutlet NSTextView *content;
}

-(IBAction)displayOutput:(id)sender;

@property (assign) IBOutlet NSWindow *window;

@end

.m文件

#import "InterfaceManager.h"

@implementation InterfaceManager

-(IBAction)displayOutput:(id)sender {
    [content setString:@"This is a string"];
}

@end

这一切都完美无缺,完全符合我的要求。


但是我需要能够在void方法中做同样的事情。这是我尝试过的。

.h文件

#import "AppDelegate.h"

@interface InterfaceManager : AppDelegate {
    IBOutlet NSTextView *content;
}

-(void)displayOutput:(NSString *)string;

@property (assign) IBOutlet NSWindow *window;

@end

.m文件

#import "InterfaceManager.h"

@implementation InterfaceManager

-(void)displayOutput:(NSString *)string {
    [content setString:string];
}

@end

它似乎无法发挥作用。

我做错了什么以及如何修复它以使其有效?

提前致谢! :)

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您可以在按下按钮时设置文本,但是您也希望在用户不按下按钮的情况下设置文本。如果是这种情况,那么您不需要" void方法",您可以使用任何方法来执行此操作。例如,当我第一次使用此代码进入屏幕时,我在选项屏幕中设置了客户端名称。

- (void)viewDidLoad {

    // All games allow a client and rewards
    if (self.currentClient) {
        self.clientInput.text = self.currentClient;
    }
}

如果你想有一个单独的方法来设置字符串,我想你可以使用这样的东西:

-(void)myContentSettingMethod {
     [self.content setString:@"This is a string"];
}

然后在您想要设置内容时调用它。