Xcode用户定义的运行时属性不起作用

时间:2012-01-11 20:33:40

标签: objective-c xcode macos

从我发现的帖子看来,这似乎应该可行,但我无法获取我的运行时属性。我正在使用Xcode 4.2.1为OSX 10.7开发。这是IB中的设置:

enter image description here

这是我的代码:

#import "BILAugmentedScrollView.h"

@implementation BILAugmentedScrollView {

    BOOL _ignoreScrollWheel;
}

@synthesize ignoreScrollWheel = _ignoreScrollWheel;


- (void)scrollWheel:(NSEvent *)theEvent {

    NSLog(@"scroll ignore = %@", [NSNumber numberWithBool:self.ignoreScrollWheel]);

    if (self.ignoreScrollWheel)
        [self.nextResponder scrollWheel:theEvent];
    else
        [super scrollWheel:theEvent];
}

我的输出是这样的:[7411:707] scroll ignore = 0

有什么想法吗? 感谢

2 个答案:

答案 0 :(得分:2)

我在其他地方读到使用自定义initWithCoder实现时属性不起作用。

(另外,赞成使用3个字母的“命名空间”前缀,正如Apple(相当默默地)建议做的那样。我有点担心特别是Cocoa旧计时器一直忽略这个规则并继续使用2仅限字母。)

答案 1 :(得分:0)

经过一些实验,问题似乎与这个对象(“BILAugmentedScrollView”)在NSCollectionView中使用的事实有关:当它独立时,改变IB中的属性就可以了。我不知道为什么会出现问题,因为对象的每个实例都是由集合视图从nib加载的,但确实如此。