我创建了一个 UISearchBar,我必须在 inputAccessoryView 中插入一个视图,但编译器给了我这个错误:
分配给只读属性
为什么会这样?:
@property(nonatomic,retain)IBOutlet UISearchBar *searchbar;
@property (retain, nonatomic) IBOutlet UIView *keyView;
self.searchbar.inputAccessoryView = keyView;
我创建了一个 UISearchBar,我必须在 inputAccessoryView 中插入一个视图,但编译器给了我这个错误:
分配给只读属性
为什么会这样?:
@property(nonatomic,retain)IBOutlet UISearchBar *searchbar;
@property (retain, nonatomic) IBOutlet UIView *keyView;
self.searchbar.inputAccessoryView = keyView;
SearchBars 里面有一个 UITextView,你可以用稍微脏一点的方式来寻找它,并将 inputAccessoryView 设置为它。我不确定这是否可行,但值得一试
UITextField *searchBarField = nil;
for (UIView *subView in searchBar.subviews) {
if ([subView conformsToProtocol:@protocol(UITextInputTraits)]) {
searchBarField = (UITextField *)subView;
searchBarField.inputAccessoryView = ...
break;
}
}
发生这种情况,因为这个属性是只读的,你不能简单地分配一个“UIView”。阅读UISearchBar inputAccessoryView以获取有关如何访问此属性的建议。您必须对搜索栏进行子类化。