【问题标题】:NSScrollview may not respond to '-text'NSScrollview 可能不响应“-text”
【发布时间】:2010-06-27 02:07:25
【问题描述】:

我无法将 NSString 分配给 NSScrollView 的文本。我尝试了以下方法:

    NSString *medium = codeView.text;

那没用,所以我尝试了:

    NSString *medium = [codeView text];

这仍然不起作用,它给了我警告:

NSScrollview 可能无法响应 '-文本'

或者在“.”的情况下运算符它给了我错误:

对成员“文本”的请求不是结构或联合。

有人对如何解决这个问题有任何建议吗?

我正在通过以下方式初始化代码:

@interface NetCodeViewController : NSObject {
    IBOutlet NSTextView *codeView;
}
@property(nonatomic, retain) id *codeView;
@end

【问题讨论】:

    标签: cocoa nsstring nsscrollview


    【解决方案1】:

    这个:

    NSString *medium = codeView.text;
    

    还有这个:

    NSString *medium = [codeView text];
    

    在生成的代码方面实际上是相同的(当它工作时)。不同之处在于点版本进行了额外的验证(然后 GCC 无论如何都会产生一个不可估量的结构错误消息)。

    真正的问题是codeView 被声明为NSScrollView。您可能希望它是 NSTextView 并希望将其连接到滚动视图中包含的 NSTextView

    【讨论】:

    • 好的,但随后我的问题发生了变化,在 Interface Builder 中它不会连接到我的 IBOutlet,除非它是一个 NSScrollView。 (我使用“文本视图”作为界面构建器调用它)。
    • 您是否将变量的类型和任何相应的出口更改为 NSText 或 NSTextView(无论您在 IB 中使用哪个)?
    • 如果你的代码中有一个 NSTextView 指针,那么编译器不应该抱怨NSScrollView may not respond。请发布更多代码。
    • 不抱歉,问题是当我尝试将 Interface Builder 中的连接拖到“文本视图”时,它仅在我的 IBOutlet 类型声明为 NSScrollView 时才有效。否则,它不会将 NSTextField 对象识别为被选为新引用出口的候选对象。我绝不是指NSScrollView may not respond to '-text'
    • NSTextField、NSTextView 和 NSText 是三个不同的东西。 IIRC,您想要 NSTextView (并且您的 ivar 应该这样声明),因为它是通常封装在滚动视图中的类。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    • 2011-05-24
    • 2017-01-31
    • 2013-12-01
    • 1970-01-01
    相关资源
    最近更新 更多