iOS 8 自定义键盘扩展 UIKeyboardType

Posted

技术标签:

【中文标题】iOS 8 自定义键盘扩展 UIKeyboardType【英文标题】:iOS 8 custom keyboard extension UIKeyboardType 【发布时间】:2014-10-26 23:14:07 【问题描述】:

我正在构建一个 ios 8 自定义键盘,我想根据 UIKeyboardType 更改键盘的布局,但是,在 UIInputViewController 中读取的键盘类型始终为 0。 有什么建议么?提前致谢!

- (void)viewDidLoad

    [super viewDidLoad];

    NSLog(@"TextInputMode: %ld", self.textDocumentProxy.keyboardType);

【问题讨论】:

【参考方案1】:

在 InputView 委托方法中获取 keyboardType 而不是 ViewDidLoad 。因为在键盘完全呈现并激活输入对象之前,您无法获取keyboardType。

- (void)textWillChange:(id<UITextInput>)textInput 

    NSLog(@"TextInputMode: %ld", self.textDocumentProxy.keyboardType);


- (void)textDidChange:(id<UITextInput>)textInput 

    NSLog(@"TextInputMode: %ld", self.textDocumentProxy.keyboardType);


【讨论】:

【参考方案2】:

(没有足够的代表添加评论抱歉)

textDidChange 是最好的方法,因为在调用它时,keyboardType 已经更新。如果你使用textWillChange,你会发现你的键盘落后了一个类型。

【讨论】:

这对我有帮助!谢谢!

以上是关于iOS 8 自定义键盘扩展 UIKeyboardType的主要内容,如果未能解决你的问题,请参考以下文章

获取 ios 8 自定义键盘扩展的“因内存错误而终止”

iOS 8 自定义键盘

ios 8 键盘扩展设置包

NSUserDefaults 不在 iOS 8 中的应用程序和自定义键盘之间存储值

在 iOS 8 键盘扩展中实现自动更正

iOS 8 键盘扩展:出现呼叫栏时出现约束错误?