自定义iPad键盘,看起来像系统键盘

Jar*_*tar 6 iphone keyboard ipad

我正在寻找一个非hackish解决方案,所以基本上-inputView.我不确定的部分是如何使它看起来像常规键盘,从背景到键.我意识到我可以在Photoshop上使用苹果键盘,但这看起来有点像hackish,特别是如果苹果(可能不是但仍然可能)决定改变键盘的外观.我知道Numbers在制作看起来像标准系统键盘的额外键盘方面做得非常出色,我想这样做(尽管显然他们可以访问制作系统键盘的相同资源,包括可能的私有框架,等等.)

Pet*_*ese 0

创建视图控制器和 xib。xib 应该有 1-9,0 和删除按钮映射到控制器中的 IBOutlet。将返回值字符串存储并保留为属性。如果您愿意,您可以添加小数等。在标头中,存储带有属性的版本块闭包(或者创建委托或使用通知)。

@property (copy) void(^valueChangedBlock)(NSString* string);
Run Code Online (Sandbox Code Playgroud)

触摸时,每个按钮都会向如下方法发送一个事件:

- (IBAction) pressKey:(id)sender
{
    NSString *toAppend;

    // Instead of this switch you can store the values in a dictionary mapped by sender.
    switch(sender)
    {
        case oneButton: toAppend=@"1"; break;
        case twoButton: toAppend=@"2"; break;
        ...
    }

    returnValue = [returnValue appendString:toAppend];
    valueChanged(returnValue);
}
Run Code Online (Sandbox Code Playgroud)

显然,删除键应该从字符串末尾删除一个字符,而不是追加。除了创建控制器并将此视图添加为 inputView 之外,您还应该添加 valueChangedBlock 并将其设置为更新文本字段。您可能希望在设置的文本字段上放置一个清晰的自定义按钮,以使该字段成为第一响应者,这样用户就不会在字符串中的任何位置进行编辑。