如何使用UISearchBar实现自定义键盘?

时间:2012-10-09 17:34:06

标签: iphone xcode keyboard uisearchbar

在我的应用程序中,我开发了一种本地语言的自定义键盘。现在这个键盘可以正常使用UITextField和UITextView。对于这两个我实现这样的自定义键盘。

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

但是当我为UISearchBar实现它时

searchBar.inputView = Customkeyboard;

它给了我以下错误。

  

错误:无法设置对象 - readonly属性或找不到setter

我也设置了它的属性和Synthesis,但无法解决这个问题。任何人都可以帮我解决这个问题。谢谢。

2 个答案:

答案 0 :(得分:0)

您将无法为搜索栏设置它,UITextFieldUISearchBar都从UIResponder继承,UIResponder具有UIView属性为readonly,但是UITextField会覆盖该属性并使其成为{{1} },但searchBar没有。

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

答案 1 :(得分:0)

根据UIResponder

的课程文件
  

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

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

  

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

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

  

searchBar.inputView = Customkeyboard; //其中searchBar是SearchBar的对象,而不是UISearchBar