我试图利用inputAccessoryView并显示帮助文本以及上一个和下一个按钮。但是我有很多UITextField跨越了许多ViewController。所以我想为inputAccessoryView提供一个可重用的UIView。
为此,我创建了一个xib文件('SetupKeyboardAccessory')和一个附加到该xib的ViewController('SetupKeyboardAccessoryViewController')。
SetupKeyboardAccessory:
SetupKeyboardAccessoryViewController:
@interface SetupKeyboardAccessoryViewController : UIViewController
@property (weak, nonatomic) IBOutlet UILabel *helpTextLabel;
@property (weak, nonatomic) IBOutlet UIButton *previousButton;
@property (weak, nonatomic) IBOutlet UIButton *nextButton;
@end
在MainViewController内部,我有UITextFields。这个MainViewController实现UITextFieldDelegate:
MainViewController:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
// you can create the accessory view programmatically (in code), or from the storyboard
if (textField.inputAccessoryView == nil) {
SetupKeyboardAccessoryViewController *accessoryView =
[[SetupKeyboardAccessoryViewController alloc] initWithNibName:@"SetupKeyboardAccessory"
bundle:nil];
accessoryView.helpTextLabel.text = @"setting help text here";
textField.inputAccessoryView = accessoryView.view;
}
//self.navigationItem.rightBarButtonItem = self.doneButton;
return YES;
}
- (BOOL)textFieldShouldEndEditing:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
当文本字段开始编辑时,我将初始化SetupKeyboardAccessoryViewController,设置帮助文本,然后将其设置为inputAccessoryView。由于某些原因,帮助文本未设置。
我知道我可能在这里将SetupKeyboardAccessoryViewController的视图设置为inputAccessoryView时做错了。我对iOS开发还是很陌生。因此,任何帮助将不胜感激。谢谢!
创建一个视图控制器仅出于实例化视图的目的,而只是丢弃该视图控制器是不合适的。
如果您只有SetupKeyboardAccessoryView
一个类是UIView的子类,那么您的代码将更加简单。然后使nib文件中的视图成为此类,并使用实例化它:
SetupKeyboardAccessoryView *accessoryView = [[[NSBundle mainBundle] loadNibNamed:@"SetupKeyboardAccessoryView" owner:nil options:nil] firstObject]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句