gpt4 book ai didi

iphone - 模仿 iPhone 手机键盘输入

转载 作者:行者123 更新时间:2023-11-28 19:21:49 27 4
gpt4 key购买 nike

您将如何模仿 iPhone 的键盘输入。因此,当您单击一个时,会显示 1,然后显示 2,然后显示 12... 依此类推,并显示 ( ) -。我不想使用实际的电话应用程序,因为我正在创建一个虚假的拨号器,但我希望它的外观和功能有点像实际的东西。

如有任何想法,我们将不胜感激。

编辑:

好的,所以我放入了所有需要的按钮,但最后我把它们都变成了单独的按钮。它们都是链接在一起的,包括标签,这就是一个按钮和更新程序的样子。

-(IBAction)zeroButton:(id)sender{
self.enteredPhoneNumberString = [self.enteredPhoneNumberString stringByAppendingString:[NSString stringWithFormat:@"%d", "0"]];
[self updateFormattedPhoneNumberLabel];

}

-(void)updateFormattedPhoneNumberLabel {
if ([self.self.enteredPhoneNumberString length] > 3) {
NSString *firstThree = [self.enteredPhoneNumberString substringToIndex:2];
NSString *lastSet = [self.enteredPhoneNumberString substringFromIndex:2];
self.label.text = [NSString stringWithFormat:@"%@-%@", firstThree, lastSet];
}
else if ([self.self.enteredPhoneNumberString length] > 7) {
NSString *firstThree = [self.enteredPhoneNumberString substringToIndex:2];
NSString *secondThree = [self.enteredPhoneNumberString substringToIndex:2];
NSString *lastSet = [self.enteredPhoneNumberString substringFromIndex:2];
self.label.text = [NSString stringWithFormat:@"(%@) %@-%@", firstThree, secondThree, lastSet];
}
}

我也试过用“”不在被附加的数字周围。知道为什么什么都没有显示吗?

新编辑:

我添加了 enteredPhoneNumberString = @"";并且数字按照您原来的方式格式化显示数字。我现在遇到的主要问题是让 () 和 - 出现在正确的位置。

最佳答案

我建议创建一个模仿小键盘的 UIButton 网格,这些按钮都调用一个方法,例如 keyPadButtonTouchedUpInside:(id)sender 并有一个标签对应于它代表的数字。

keyPadButtonTouchedUpInside:(id)sender 的实现可能看起来像...

- (void)keyPadButtonTouchedUpInside:(id)sender {
UIButton *touchedButton = (UIButton *)sender;
if (touchedButton.tag <= 9) {
self.enteredPhoneNumberString = [self.enteredPhoneNumberString stringByAppendingString:[NSString stringWithFormat:@"%d", touchedButton.tag]];
[self updateFormattedPhoneNumberLabel];
} else {
// maybe some other code for pounds/stars entered on the keypad if you have these
// you will also be checking if the user hit the backspace key and trim your
// phone number string by 1
}
}

现在你需要实现updateFormattedPhoneNumberLabel

这将查看实例 NSString 变量 self.enteredPhoneNumberString 并更新您已有的 UILabel 以显示号码。

updateFormattedPhoneNumberLabel 可能看起来像...

- (void)updateFormattedPhoneNumberLabel {
if ([self.self.enteredPhoneNumberString length] > 3) {
NSString *firstThree = [self.enteredPhoneNumberString subStringToIndex:2];
NSString *lastSet = [self.enteredPhoneNumberString subStringFromIndex:2];
self.formattedPhoneNumberLabel.text = [NSString stringWithFormat:@"%@-%@", firstThree, lastSet];
} else if ....
// more conditions to check for other lengths of the
// entered number and continue with the proposed formatting methods.

希望这能让你走上正轨,可能有更有效的方法来做到这一点,但实际上它不是一个密集的操作,所以我不会太担心优化,除非你看到某种我不会的进入滞后没想到。

编辑

我可能会更新格式化条件,以便格式化发生在以下行为中。

输入的 1-3 个数字显示为“1”、“12”或“123”

输入的 4-7 个号码显示为“123-4”、“123-45”、“123-456”或“123-4567”

输入的 8-10 个号码显示为“(123) 456-78”、“(123) 456-789”或“(123) 456-7890”

输入的11个号码显示为“1+(234)-567-8901”

任何超过 11 的数字我都会显示一串数字,除非您想格式化非美国数字。如果您想完全模仿它,您还应该尝试在电话应用程序中输入数字,看看它会如何响应。

关于iphone - 模仿 iPhone 手机键盘输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8321777/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com