iphone - 如何使用 PhoneNumberFormatter 类在 UITextField 中格式化电话号码?
<p><p>我一直在这里查看一堆关于尝试将 UITextField 自动格式化为电话号码的线程。我看到了 Ahmed Abdelkader 的 PhoneNumberFormatter 类的链接 (<a href="http://the-lost-beauty.blogspot.com/2010/01/auto-formatting-phone-number.html" rel="noreferrer noopener nofollow">http://the-lost-beauty.blogspot.com/2010/01/auto-formatting-phone-number.html</a>)</p>
<p>但我不明白如何实际实现它。我有两个要与该类一起使用的 UITextField,在一个表单中与许多其他 UITextField 一起用于其他目的。 </p>
<p>艾哈迈德的例子是:</p>
<pre><code>UITextField *myTextField;
int myTextFieldSemaphore;
PhoneNumberFormatter *myPhoneNumberFormatter;
NSString *myLocale; //@"us"
//init semaphore
myTextFieldSemaphore = 0;
//bind events
[myTextField addTarget:self
action:@selector(autoFormatTextField:)
forControlEvents:UIControlEventEditingChanged
];
//handle events
- (void)autoFormatTextField:(id)sender {
if(myTextFieldSemaphore) return;
myTextFieldSemaphore = 1;
myTextField.text = ;
myTextFieldSemaphore = 0;
}
</code></pre>
<p>我不确定将上面的代码放在哪里,或者如何在我的属性中而不是他的变量中子。到目前为止,我只能让文本字段拒绝输入:/- 有没有人有这个类的更完整实现的例子?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>只需将此代码放在实现 <code>UITextFieldDelegate</code> 的类中。 myTextField 应该替换为您的 <code>UITextField</code> 实例。您应该获取设备的当前语言环境,而不是使用 myLocale。并且 <code>PhoneNumberFormatter</code> 可以在使用后分配和释放。 </p>
<pre><code>- (void)autoFormatTextField:(id)sender
{
if(myTextFieldSemaphore) return;
myTextFieldSemaphore = 1;
PhoneNumberFormatter* phoneNumberFormatter = [ init];
myTextField.text = localeIdentifier]];
;
myTextFieldSemaphore = 0;
}
</code></pre></p>
<p style="font-size: 20px;">关于iphone - 如何使用 PhoneNumberFormatter 类在 UITextField 中格式化电话号码?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/7184094/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/7184094/
</a>
</p>
页:
[1]