我创建了一个UIViewController
的子类,xib
有一个我自己构建的自定义键盘。我使用自定义键盘的原因是我需要一个小数点的键,它需要比原生键盘短,并且它只需要有数字。
模态视图不起作用,因为我希望它只能在中途出现,就像原生键盘一样。
我能够将其作为同一xib
中的另一个视图,但我不确定如何从单独的xib
中调用它2个不同的视图将使用我的键盘 - 所以我想要只创建一次而不是将它作为另一个视图添加到两个xib。
以下是我将另一个视图添加到同一xib
时代码的外观。 (它有效)。
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
if (!calcVisible) {
[calculatorView setFrame:CGRectMake(0, 416, 320, 200)];
[self.view addSubview:calculatorView];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3f];
[calculatorView setFrame:CGRectMake(0, 216, 320, 200)];
[UIView commitAnimations];
calcVisible = YES;
}
但我如何从单独的calculatorView
?
xib
答案 0 :(得分:1)
模态视图不起作用,因为我只希望它出现 中途,就像原生键盘一样。
将文本字段的inputView
属性设置为要用作键盘的视图。在这种情况下,我猜是calculatorView
,所以你想要添加视图控制器的-viewDidLoad
中的某个位置:
textField.intputView = calculatorView;
当文本字段成为第一响应者时,它将显示该视图而不是标准键盘。您不必担心自己呈现视图。
但是我如何从单独的xib初始化calculatorView?
这也很简单。如果尚未添加插座,请添加到视图控制器:
@property(strong, nonatomic) IBOutlet UIView* calculatorView;
(您自然希望创建访问器,可能使用@synthesize
。)创建一个名为“Calculator.xib”的.xib,其中包含您要使用的视图。选择.xib中的文件所有者代理图标,并将其类设置为视图控制器的类。然后将.xib中的视图连接到文件所有者中的calculatorView
插座。在视图控制器的代码中,加载.xib文件:
[[NSBundle mainBundle] loadNibNamed:@"Calculator" owner:self options:0];
之后,您的calculatorView
属性应指向您的视图实例。