2

我创建了一个 UISearchBar,我必须在 inputAccessoryView 中插入一个视图,但编译器给了我这个错误:

分配给只读属性

为什么会这样?:

@property(nonatomic,retain)IBOutlet UISearchBar *searchbar;

@property (retain, nonatomic) IBOutlet UIView *keyView;

 self.searchbar.inputAccessoryView = keyView;
4

2 回答 2

5

SearchBars 里面有一个 UITextView,你可以用稍微脏一点的方式来寻找它,并将 inputAccessoryView 设置为它。我不确定这是否可行,但值得一试

UITextField *searchBarField = nil;
for (UIView *subView in searchBar.subviews) {
    if ([subView conformsToProtocol:@protocol(UITextInputTraits)]) {
        searchBarField = (UITextField *)subView;
        searchBarField.inputAccessoryView = ...
        break;
    }
}
于 2012-08-29T14:45:15.903 回答
0

发生这种情况,因为这个属性是只读的,你不能简单地分配一个“UIView”。阅读UISearchBar inputAccessoryView以获取有关如何访问此属性的建议。您必须对搜索栏进行子类化。

于 2012-08-29T14:43:48.207 回答