用NSViewController加载nib后......如何在nib中访问NSButton?

时间:2009-11-27 16:32:57

标签: cocoa nsview nib nsviewcontroller

我已经将IBOutlets子类连接到辅助笔尖中的NSButton中。

我可以实例化NSViewController并在NSMenu中应用视图 - 它工作得很好 - 但是如何访问按钮来更改其标题?

由于NSViewController有IBOutlets,我假设我是通过控制器完成的。

//this part works great
NSViewController *viewController = [[toDoViewController alloc] initWithNibName:@"toDoView" bundle:nil];
NSView *newView = [viewController view];
newMenuItem.view = newView;

//this part not so much
[viewController [toDoButton setTitle:someStringHere]];

有关从哪里开始的指示?

编辑添加:toDoViewController类 -

@interface toDoViewController : NSViewController {
    IBOutlet NSButton *checkBoxButton;
    IBOutlet NSButton *toDoButton;
}

@end

1 个答案:

答案 0 :(得分:1)

[viewController [toDoButton setTitle:someStringHere]];

正如交互式小说翻译所说,“这似乎缺少一个动词。”

您有一个接收器(viewController)和一个完整的消息表达式([toDoButton setTitle:…])和括号,但您缺少一个选择器。因此,这不是有效的消息表达式。

有两种可能性:

  1. 您的意思是向视图控制器发送消息,将setTitle:的结果作为参数传递,您忘记了选择器。我发现这不太可能,因为NSButton的setTitle:没有返回任何内容。
  2. 您的意思是从视图控制器获取按钮,然后发送按钮setTitle:消息。假设此视图控制器是NSViewController的子类的实例,您在其中添加了toDoButton属性,请使用[[viewController toDoButton] setTitle:someStringHere][viewController.toDoButton setTitle:someStringHere]