UISearchBar inputAccessoryView的问题

时间:2012-08-29 14:37:05

标签: iphone objective-c ios xcode ipad

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

  

分配给只读属性

为什么会这样? :

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

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

 self.searchbar.inputAccessoryView = keyView;

2 个答案:

答案 0 :(得分:5)

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

UITextField *searchBarField = nil;
for (UIView *subView in searchBar.subviews) {
    if ([subView conformsToProtocol:@protocol(UITextInputTraits)]) {
        searchBarField = (UITextField *)subView;
        searchBarField.inputAccessoryView = ...
        break;
    }
}

答案 1 :(得分:0)

这种情况发生,因为这个属性是只读的,你不能简单地指定一个'UIView'。请阅读UISearchBar inputAccessoryView以获取有关如何访问此媒体资源的建议。你必须继承搜索栏。