我困在iOS中的一个概念,我无法理解,无论我读了多少。我试图用自定义设计来覆盖标准的iOS数字键盘。当用户触摸UITextField时,我想要显示自定义inputView而不是标准数字键盘。ios添加自定义输入查看
我为我的自定义inputView创建了一个名为“customInputViewController”的单独的.h/.m/.xib ViewController类,它只是一个黑色的背景和一个按钮,当UITextField被触摸时会遮住大约一半的屏幕类似于数字键盘,但它看起来不同)。当我单击自定义inputView中的一个按钮时,我的实现失败 - iOS引发EXC_BAD_ACCESS错误。
我这是怎么加载的.xib文件在运行时自定义inputView附加到UITextField对象:
UIViewController *v = [[customInputViewController alloc] initWithNibName:@"customInputDesign" bundle:nil];
myTextInput.inputView = v.view;
在定制inputView的的.xib文件,我设置了文件的所有者是“ customInputViewController“,我创建了一个(IBAction)方法并将其附加到UIButton。单击该按钮时,(IBAction)设置为发送NSLog(@“Button Clicked”)消息。没什么特别的。这只是一个简单的样板实现,继续抛出一个错误。
也许我这样做完全错了。谁能提供一个简单的例子?
我已经过了所有的例子,包括一个[这里](http://blog.carbonfive.com/2012/03/12/customizing-the-ios-keyboard/),他们都想要将自定义inputView放入主视图的xib中。我想构建一些不那么耦合的东西,比如一个单独的inputView类,它可以从笔尖初始化并设置为响应我附加到的任何文本字段。 – Marc
只要您不释放拥有该视图的视图控制器,您的代码就可以正常运行。该视图由UITextField保留,但视图控制器不是。无论如何,你可以创建一个包含你自己的UIView子类的xib,并使用KeyboardView加载* view [[NSBundle loadNibNamed:@“KeyboardView”owner:nil options:nil] lastObject]。这样你就不需要使用额外的视图控制器,所以你不必担心它。 –