无法对IBOutlet变量进行修改

时间:2011-11-14 03:47:20

标签: objective-c iboutlet

我正在尝试在运行时向NSPopUpButton添加一些项目,但我无法对其进行任何修改,我只能读取值。

(部分)我的代码:

@interface GAH : NSObject {
    // ...
    IBOutlet NSPopUpButton *popper;
    // ...
}

@end

然后我的@implementation:

@implementation GAH

// ...
-(void)someMethod {
    // in a for loop
    NSString *name = @"a name from the loop";
    [popper addItemWithTitle:name];
    // end for loop

    NSLog(@"items: %d", [popper numberOfItems];
}

即使多次调用addItemWithTitle,最后一行返回0(我确保名称设置正确)

以下也是“只读”的标志

[popper setAutoenablesItems:YES];
NSLog(@"%@", [popper isAutoenablesItems] ? @"YES": @"NO");
// Prints "NO"

我是否遗漏了IBOutlet声明的内容?

1 个答案:

答案 0 :(得分:1)

调用它时,NSPopUpButton是否已初始化? nil对象将无操作。代码中的任何一点都不会检查它是否为nil。我会在日志声明中查看popper是否为nil。如果是,请确保它已在您的笔尖中连接。