没有用于赋值给属性的Setter方法 - 可可应用程序

时间:2015-02-15 17:22:38

标签: objective-c cocoa nstextfieldcell

我对objective-c相当新,刚刚遇到了一个我以前没见过的错误。 我正在尝试将文本字段单元格设置为“可选”,但我得到错误“没有Setter方法'setIsSelectable'用于赋值给属性。”

这是.h和.m文件。 感谢。

DataPanel.h
#import <Cocoa/Cocoa.h>

@interface DataPanel : NSPanel
@property (weak) IBOutlet NSTextFieldCell *textField;

@end



DataPanel.m
#import "DataPanel.h"

@implementation DataPanel
@synthesize textField = _textField;

- (void) awakeFromNib{

_textField.stringValue = @"1.1 Performance standards The overall objective of       the performance standards in Section 1.1 is to provide acoustic conditions in schools that (a) facilitate clear communication of speech between teacher and student, and between students, and (b) do not interfere with study activities.";
_textField.isSelectable = YES;
}

@end

1 个答案:

答案 0 :(得分:12)

在Objective-C中,以'is'开头的BOOL属性通常只是属性的getter,而不是属性本身。
这是一个惯例。

仅为了解一般知识,您可以通过以下方式声明属性来自行完成:
@property (nonatomic, getter=isAvaiable) BOOL available;

因此尝试设置上述内容,而使用isAvailable将无效,因为它是getter方法,并且您无法设置getter。

至于你的问题,
尝试将代码从_textField.isSelectable = YES;更改为以下任意一种,它应该可以使用 _textField.selectable = YES;
[_textField setSelectable:YES];

祝你好运。