Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iOS自定义键盘中切换单词选择视图(更改高度)?_Ios_Ios8_Ios App Extension - Fatal编程技术网

如何在iOS自定义键盘中切换单词选择视图(更改高度)?

如何在iOS自定义键盘中切换单词选择视图(更改高度)?,ios,ios8,ios-app-extension,Ios,Ios8,Ios App Extension,我想在iOS8自定义键盘中添加一个与上面类似的单词选择视图 如何动态更改键盘视图矩形的大小?及 通知活动应用程序(如内置消息应用程序)相应地重新定位输入栏 更新:基于,键盘高度可定制。这怎么可能呢 您想根据输入更改输入附件视图的大小和内容。不是键盘的框架(输入视图)。用红色矩形标记的区域是处于两种不同状态的输入附件视图 UIKit发布与键盘相关的通知 ui键盘将显示通知 UIKeyboardDidShowNotification UIKeyboardWillHideNotification

我想在iOS8自定义键盘中添加一个与上面类似的单词选择视图

  • 如何动态更改键盘视图矩形的大小?及
  • 通知活动应用程序(如内置消息应用程序)相应地重新定位输入栏
  • 更新:基于,键盘高度可定制。这怎么可能呢


    您想根据输入更改输入附件视图的大小和内容。不是键盘的框架(输入视图)。用红色矩形标记的区域是处于两种不同状态的输入附件视图

    UIKit
    发布与键盘相关的通知

    • ui键盘将显示通知
    • UIKeyboardDidShowNotification
    • UIKeyboardWillHideNotification
    • UIKeyboardDidHideNotification
    侦听这些通知的对象可以获取与输入视图相关的几何体信息(如键盘高度),以调整编辑的视图

    获取有关文本更改的通知。 要根据输入更改输入附件视图,必须首先观察其内容的更改。您可以通过实现
    UITextFieldDelegate
    textField:shouldChangeCharactersRange:replacementString:
    方法或侦听
    UITextFieldTextDidChangeNotification

    [[NSNotificationCenter defaultCenter] addObserver:self    
                                             selector:@selector(handleTextFieldDidChangeNotification:) 
                                                 name:UITextFieldTextDidChangeNotification       
                                               object:_textFieldInInputAccessoryView];
    
    处理文本更改。 关键是在文本字段发生更改时更改输入附件视图内容和大小。UIKit将输入附件视图连接到输入视图(键盘)的顶部。如果要在文本字段下方添加一行控件,则必须更新输入附件视图的框架

    - (void)handleTextFieldDidChangeNotification:(NSNotification *)notification
    {
         // Update the contents/frame of the input accessory view.
    
         // Reload the input views.
         [_yourTextField reloadInputViews];
    }
    

    基于文本,您不能使用iOS 8中的自定义键盘API将键盘扩展到默认帧之外。今年,我在WWDC向一位苹果工程师提问时就知道了这一点。

    在当前的iOS 8中,可以更改键盘的大小

    从文档中逐字摘录:“在iOS 8.0中,您可以在自定义键盘的主视图最初在屏幕上绘制后随时调整其高度。

    要调整自定义键盘的大小,请添加简单的布局约束

    CGFloat _expandedHeight = 500;
    NSLayoutConstraint *_heightConstraint = 
        [NSLayoutConstraint constraintWithItem: self.view 
                                     attribute: NSLayoutAttributeHeight 
                                     relatedBy: NSLayoutRelationEqual 
                                        toItem: nil 
                                     attribute: NSLayoutAttributeNotAnAttribute 
                                    multiplier: 0.0 
                                      constant: _expandedHeight];
    [self.view addConstraint: _heightConstraint];
    

    有关更多信息,请查看苹果的预发布文档

    我的问题是关于在自定义键盘内扩展视图维度。这与如何从应用程序使用附件视图无关。自定义键盘是iOS 8的新功能。对这个问题的回答有一个小小的修正:输入附件视图中突出显示的区域太大了-它应该只是一行建议的单词。上面的控件属于原始文本字段。很遗憾知道。谢谢你的信息!此信息在最新Beta版本中已过时。键盘可以调整大小。请参阅本节:并在此页(在浏览器中)上搜索“高度”。引用文档——“在iOS 8.0中,在自定义键盘的主视图最初在屏幕上绘制之后,您可以随时调整其高度。”但是,您仍然无法在您请求的任何帧之外绘制。考虑截图。我已经将键盘(现在只是一个黑色视图)垂直调整为320点(比平常大),并在顶部添加了一个黄色子视图,高度为40点。但只显示了20个点,因为键盘无法在其边界之外绘制。粗略的例子,但它工作。@DevKanchen非常有趣,谢谢你提供的信息。您好,我正在使用xocde beta 5和beta 6,希望增加键盘高度,但仍然无法工作。我使用的电源线与apple doc中提供的电源线相同。问题是什么?帮助我