当用户点击UITextField时,我希望iPhone虚拟键盘预先显示为特定语言(例如俄语)。有没有办法在Cocoa代码中做到这一点?设置iPhone键盘语言
15
A
回答
7
这是一个用户定义的设置,不幸的是程序员不能搞乱。
0
不知道你为什么要这样做 - 我不会说俄语,如果突然出现一个俄语键盘,我会有点惊慌。
用户可以在他们的iPhone设置应用程序中选择他们想要的语言。然后确定当他们点击文本字段时显示哪个键盘。
0
我想这样做,因为我正在写一个语言学习应用程序。
什么使iPhone上当前的键盘选择设置更糟糕(至少对我而言)是因为它不记得每个应用程序的键盘。所以如果你改变它的一个应用程序,它仍然是你打开的下一个应用程序相同的键盘。
0
我不知道iPhone 3.0 SDK,但是从2.x开始,你无法控制这个。但是,您可以做的是制作自定义键盘。这需要更多的工作,但是您可以重新制作每种语言的布局。
0
回答有关英文键盘的问题 - Apple为此设计的 - 您可以使用ASCII键盘 - 您可以选择:UIKeyboardTypeASCIICapable。
2
3.1+没有问题。我设置为3.0:
self.searchBar.keyboardType = UIKeyboardTypeURL;
和语言切换按钮出现。
1
您不能将键盘设置为所需的字符集,但下一个最好的办法是防止用户输入任何其他字符集中的字符。下面的代表可以做到这一点,当输入不正确的字符时,它还会响应iPhone的振动器,这很好地提醒用户他们选择了错误的键盘。这是韩国但是对于其他语言方便地进行修改(见注释):
头文件
#import <Foundation/Foundation.h>
#import <AudioToolbox/AudioToolbox.h>
@interface KoreanOnlyInput : NSObject <UITextFieldDelegate>
{
NSMutableCharacterSet* koreanUnicode;
}
@end
.m文件:
#import "KoreanOnlyInput.h"
@implementation KoreanOnlyInput
- (id)init
{
self = [super init];
if (self) {
// From http://www.unicodemap.org/ :
// 0x1100 - 0x11FF : Hangul Jamo (256)
// 0x3130 - 0x318F : Hangul Compatibility Jamo (96)
// 0xAC00 - 0xD7A3 : Hangul Syllables (11172)
koreanUnicode = [[NSMutableCharacterSet alloc] init];
NSRange range;
range.location = 0x1100;
range.length = 1 + 0x11FF - range.location;
[koreanUnicode addCharactersInRange:range];
range.location = 0x3130;
range.length = 1 + 0x318F - range.location;
[koreanUnicode addCharactersInRange:range];
range.location = 0xAC00;
range.length = 1 + 0xD7A3 - range.location;
[koreanUnicode addCharactersInRange:range];
}
return self;
}
- (void)dealloc
{
[koreanUnicode release];
[super dealloc];
}
- (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString*)string
{
if ([string isEqualToString:@"\n"])
return YES;
BOOL shouldChange = YES;
for (int i=0; i<[string length]; i++)
{
if (![koreanUnicode characterIsMember:[string characterAtIndex:i]])
shouldChange = NO;
}
if (!shouldChange)
{
AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
}
return shouldChange;
}
@end
相关问题
- 1. iPhone语言设置
- 2. Android键盘语言
- 3. tvOS键盘语言
- 4. QValidator和键盘语言qt
- 5. Android键盘布局语言
- 6. 多少种语言的WP7的键盘支持,如何设置
- 7. 将键盘设置为仅英文语言的文本字段
- 8. 设置我的语言环境iphone
- 9. iPhone - 自定义语言设置
- 10. 设置语言
- 11. 根据用户输入显示不同语言的iPhone键盘
- 12. iPhone - 以编程方式选择语言键盘
- 13. 软键盘设置
- 14. 如何检测软键盘语言?
- 15. 查找当前键盘的语言
- 16. 查找当前Android键盘的语言
- 17. 键盘/语言错误(在R中)
- 18. 如何更改键盘语言环境?
- 19. 键盘语言在运行时更改?
- 20. 如何知道键盘语言? (en/fr)
- 21. 在Windows上获取键盘语言
- 22. 如何识别jQuery的键盘语言
- 23. java中的多语言虚拟键盘
- 24. 设置多语言
- 25. 设置PHPMyAdmin语言
- 26. 将键盘设置为仅使用特定语言,而不使用更改语言按钮。目标c
- 27. 无法在自定义键盘扩展中设置主要语言
- 28. 如何设置Android AVD(SDK 2.1和2.2)的默认值(语言和键盘)
- 29. 设置在webview textarea上出现的键盘的语言在Android中单击
- 30. 如何使用adb重置Google键盘语言
如果它是俄语字典你不会惊慌。 – Nestor 2011-05-03 14:58:53