Example我是Swift的新手。我有带有文本行输入行的表单,如图所示。在使用默认粘贴操作之前,是否可以在粘贴板上拆分字符串并将其相应地粘贴到输入行。
let pasteboard = UIPasteboard.general
let pasteboardval = pasteboard.string
_ = pasteboardval?.split(separator: "\n")
我尝试在粘贴板上拆分字符串,但是如何确保当用户执行默认粘贴功能时,它将按我希望的方式粘贴。
万一道歉,如果它令人困惑,我还是新来的。
答案 0 :(得分:1)
这是示例实现
1)创建一个自定义textField类
.filter('INR', function () {
return function (input, code) {
if (! isNaN(input)) {
var currencySymbol = '₹';
//var output = Number(input).toLocaleString('en-IN'); <-- This method is not working fine in all browsers!
var result = input.toString().split('.');
var lastThree = result[0].substring(result[0].length - 3);
var otherNumbers = result[0].substring(0, result[0].length - 3);
if (otherNumbers != '')
lastThree = ',' + lastThree;
var output = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree;
if (result.length > 1) {
output += "." + result[1];
}
return currencySymbol + output;
}
}
});
2)创建一个协议来处理粘贴操作
<div ng-app="miniapp">
<div ng-controller="Ctrl">
<div ng-repeat="item in items">
{{item.amount | INR : item.code }}
</div>
</div>
</div>
3)将uitextfields分组到一个数组中并设置委托
class CustomTextField: UITextField {
var customPasteDelegate: PasteDelegate!
override func paste(_ sender: Any?) {
customPasteDelegate.handlePaste()
}
}
4)在您的控制器中实现handlePaste方法
protocol PasteDelegate {
func handlePaste()
}
答案 1 :(得分:0)
删除每个Field的IBOutlet并添加IBOutlet collection
的TextField-
@IBOutlet var txtInputFields: [UITextField]!
现在该粘贴到textFields中了-
let pasteboard = UIPasteboard.general
let pasteboardval = pasteboard.string
let inputs = pasteboardval?.split(separator: "\n")
if let inputArray = inputs {
for i in 0..<inputArray.count {
if i < txtInputFields.count {
txtInputFields[i].text = "\(inputArray[i])"
}
}
}