【发布时间】:2014-02-09 20:20:19
【问题描述】:
我正在尝试利用 inputAccessoryView 并显示帮助文本以及上一个和下一个按钮。但是,我有许多 UITextFields 跨越许多 ViewControllers。所以我想为 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 开发还很陌生。所以任何帮助将不胜感激。谢谢!
【问题讨论】:
-
helpTextLabel出口是否连接到 xib 文件中的适当标签? -
感谢 Laddu 的回复,它已正确连接到正确的标签。我做了更多的挖掘,结果发现它自己的标签在视图控制器初始化后是 nil 。我在下面发布了一个包含更多详细信息的答案。
标签: ios objective-c uitextfield