我被困在 iOS 中一个我似乎无法理解的概念上,无论我读了多少关于它的内容。我正在尝试使用自定义设计覆盖标准的 iOS 数字键盘。当用户触摸 UITextField 时,我希望显示自定义 inputView 而不是标准数字键盘。
我为我的自定义 inputView 创建了一个单独的 .h/.m/.xib ViewController 类,名为“customInputViewController” 现在,它只是一个深色背景和一个按钮,当 UITextField 被触摸时,它会遮挡大约一半的屏幕(类似于数字垫,但它只是看起来不同)。当我单击自定义 inputView 中的一个按钮时,我的实现失败——iOS 引发 EXC_BAD_ACCESS 错误。
这就是我在运行时加载 .xib 文件并将自定义 inputView 附加到 UITextField 对象的方式:
UIViewController *v = [[customInputViewController alloc] initWithNibName:@"customInputDesign" bundle:nil];
myTextInput.inputView = v.view;
在自定义 inputView 的 .xib 文件中,我将 File's Owner 设置为“customInputViewController”,并创建了一个 (IBAction) 方法并将其附加到 UIButton。单击该按钮时, (IBAction) 设置为发送 NSLog(@"Button Clicked") 消息。没什么特别的。这只是一个简单的样板实现,会继续抛出错误。
也许我这样做完全错了。谁能提供一个简单的例子?