0

In My application i develope a custom keyboard in one of local language.Now this keyboard works fine with UITextField and UITextView.For both these i implement the Custom keyboard like this.

textField.inputView = Customkeyboard;
textView.inputView = Customkeyboard;

But when i implement its for UISearchBar

searchBar.inputView = Customkeyboard;

its gives me Following Error.

error: object cannot be set - either readonly property or no setter found

i also set its property and Synthesis,but unable to solve this problem.Can any one help me to solve this problem.Thanx.

4

2 回答 2

0

根据UIResponder的类文档

该属性的值为 nil。需要自定义视图以从用户那里收集输入的响应程序对象应将此属性重新声明为读写并使用它来管理其自定义输入视图。当接收者随后成为第一响应者时,响应者基础结构会自动呈现指定的输入视图。同样,当视图放弃其第一响应者状态时,响应者基础结构会自动关闭指定的视图。

好的,创建一个继承自 UISearchBar 的类,如下 .h 和 .m 文件。在您的 .h 文件广告中,以下行

@interface SearchBar : UISearchBar
@property (readwrite, retain) UIView *inputView;
@结尾

在您使用它的当前控制器中,将 UISearchBar 替换为 SearchBar。

searchBar.inputView = 自定义键盘;// 其中 searchBar 是 SearchBar 的对象,而不是 UISearchBar

于 2012-10-09T17:48:04.657 回答
0

您将无法为搜索栏设置它,也不能从 UIResponder 继承,它的属性 UIView 为只读,但是 UITextField 会覆盖该属性UITextFieldUISearchBar使其成为readAndWrite,但 searchBar 不会。

您当然可以创建 UISearchBar 的子类并重新声明该属性,它可能会起作用。

于 2012-10-09T17:47:40.883 回答