Objective c 对两个不同的视图使用自定义键盘

Objective c 对两个不同的视图使用自定义键盘,objective-c,ios,Objective C,Ios,我已经创建了一个子类UIViewController,而xib有一个自定义键盘。我使用自定义键盘的原因是我需要一个十进制键,它需要比本机键盘短,并且只需要数字 模态视图不起作用,因为我希望它只显示一半,就像本机键盘一样 我可以在同一个xib中作为另一个视图,但我不确定如何从单独的xib中调用它。2个不同的视图将使用我的键盘-因此我只想创建一次,而不是将其作为另一个视图添加到两个xib中 下面是我在同一xib中添加另一个视图时代码的外观。(它起作用了) 但是如何从单独的xib初始化calculat

我已经创建了一个子类
UIViewController
,而
xib
有一个自定义键盘。我使用自定义键盘的原因是我需要一个十进制键,它需要比本机键盘短,并且只需要数字

模态视图不起作用,因为我希望它只显示一半,就像本机键盘一样

我可以在同一个
xib
中作为另一个视图,但我不确定如何从单独的
xib
中调用它。2个不同的视图将使用我的键盘-因此我只想创建一次,而不是将其作为另一个视图添加到两个xib中

下面是我在同一
xib
中添加另一个视图时代码的外观。(它起作用了)

但是如何从单独的
xib
初始化
calculatorView

模态视图不起作用,因为我希望它只出现在 一半,就像本地键盘一样

将文本字段的
inputView
属性设置为要用作键盘的视图。在本例中,我猜这是
calculatorView
,因此在视图控制器的
-viewDidLoad
中的某个地方,您需要添加:

textField.intputView = calculatorView;
当文本字段成为第一响应者时,它将显示该视图,而不是标准键盘。您不必担心自己呈现视图

但是如何从单独的xib初始化calculatorView

那也很容易。如果尚未将插座添加到视图控制器,请执行以下操作:

@property(strong, nonatomic) IBOutlet UIView* calculatorView;
(您自然需要创建访问器,可能是使用
@synthesis
)创建一个名为“Calculator.xib”的.xib,其中包含您要使用的视图。在.xib中选择文件的所有者代理图标,并将其类设置为视图控制器的类。然后将.xib中的视图连接到文件所有者的
calculatorView
出口。在视图控制器的代码中,加载.xib文件:

[[NSBundle mainBundle] loadNibNamed:@"Calculator" owner:self options:0];

之后,您的
calculatorView
属性应该指向您视图的一个实例。

谢谢您的帮助Caleb,我只是有点困惑。我是否将calculator视图和xib连接到正在使用它的viewController或calculatorView.h?因为我需要从两个不同的视图使用它-所以如果我从一个视图连接它,我就不能从另一个视图使用它,对吗?
[[NSBundle mainBundle] loadNibNamed:@"Calculator" owner:self options:0];