我为我的自定义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的Owner设置为“custominputVIEwController”,然后创建了一个(IBAction)方法并将其附加到UIbutton.单击该按钮时,(IBAction)设置为发送NSLog(@“按钮单击”)消息.没什么特别的.它只是一个简单的样板实现,继续引发错误.
也许我这样做完全错了.有谁可以提供一个简单的例子?
解决方法 视图v.vIEw被保留,因为inputVIEw属性被定义为(reaDWrite,retain).但是,如果在单击输入按钮之前在某处释放custominputVIEwController v,则会出现崩溃(EXC_BAD_ACCESS)您可以在主控制器中尝试:
- (IBAction) keyboardbuttonClicked{ NSLog(@"keyboard button Clicked");}- (voID) vIEwDIDLoad{ // do your stuff here ... UIVIEw *v = [[UIVIEw alloc] initWithFrame:CGRectMake(0,320,100)]; // add autorelease if you don't use ARC v.backgroundcolor = [UIcolor darkGraycolor]; UIbutton *b = [UIbutton buttonWithType:UIbuttonTypeCustom]; [b setTitle:@"Test button" forState:UIControlStatenormal]; [b addTarget:self action:@selector(keyboardbuttonClicked) forControlEvents:UIControlEventtouchUpInsIDe]; b.frame = CGRectMake(80,25,160,50); [v addSubvIEw:b]; myTextinput.inputVIEw = v;}
应该工作正常……
总结以上是内存溢出为你收集整理的ios添加自定义inputView全部内容,希望文章能够帮你解决ios添加自定义inputView所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)