我正在使用 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/