ios - 用于负数输入字段的 NativeScript 键盘

标签 ios input keyboard numbers nativescript

我正在使用 Nativescript 创建 Android 和 iOS 应用程序。因为它是一种计算器,所以有很多数字输入字段。 这些数字是十进制的,可以是负数。所以我需要一个带有数字、小数点和减号(破折号)的键盘。

因此我使用键盘类型“数字”:

Android 中打开的键盘没问题。 但是iOS中的那个有很多不必要的字段,比如“(”。iOS KeyBoard

我发现 iOS 中没有带有我想要的字段的键盘: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextInputTraits_Protocol/index.html#//apple_ref/c/tdef/UIKeyboardType

但是很多人使用“DecimalPad”和一个包含减号的“inputAccessoryView”来解决这个问题。在 NativeScript 中有解决这个问题的好方法吗?

干杯

最佳答案

您可以使用 native iOS API 来创建自定义键盘。 这是一个在您的键盘上添加取消按钮的示例,您可以根据该概念完全自定义您的键盘类型。

页面.xml

<Page xmlns="http://schemas.nativescript.org/tns.xsd" loaded="onLoaded">
  <StackLayout>
    <TextField hint="" text="1425" id="tf-toolbar" />
  </StackLayout>
</Page>

页面.js

function onLoaded(args) {
    var page = args.object;

    // if app.ios ...
    var myTextField = page.getViewById("tf-toolbar");

    // for the sake of example no target and actions are set (null)
    var barButtonItemOne = UIBarButtonItem.alloc().initWithTitleStyleTargetAction("Cancel", UIBarButtonItemStyle.UIBarButtonItemStyleBordered, null, null);
    var items = NSArray.arrayWithObject(barButtonItemOne);

    var toolbar = UIToolbar.alloc().initWithFrame({ origin: { x: 0, y: 0 }, size: { width: 320, height: 150 } });
    toolbar.barStyle = UIBarStyle.UIBarStyleBlackTranslucent;
    toolbar.items = items;

    toolbar.sizeToFit();

    var iosText = myTextField.ios;
    iosText.inputAccessoryView = toolbar;

}
exports.onLoaded = onLoaded;

以上示例基于@Luda here提供的源码

有关如何将 Objective-C“翻译”为 NativeScript 的更多信息,您可以找到 here

关于ios - 用于负数输入字段的 NativeScript 键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37298824/

相关文章:

android - 通过单击外部键盘关闭键盘后 AdjustResize 不起作用

ios - 如何在 swift iOS swift cocoa 框架中使用 Objective C 静态框架

ios - 触摸列表项仅触摸其他所有单元格

javascript - 使用 RegEx 防止前导空格

选中输入复选框时,Javascript 启用 html

IOS - 触摸 UIPickerView 时关闭键盘

python-3.x - 如何使用鼠标和键盘检测在 pygame 中编辑数独网格?

iphone - Xcode 4.2如何自动编译拖入工程的源文件?

ios - 通过检查条件防止 UITextField 聚焦?

input - 检查输入字段是否为空或在 Cypress 测试中无法正常工作