自定义键盘InputAccessoryView在iOS 11

时间:2017-06-15 07:00:09

标签: ios keyboard inputaccessoryview

我已经实现了自定义输入附件视图,它在iOS 10.3.1之前工作正常。但它在iOS 11测试版中不可见。

有没有人遇到过这个问题?

8 个答案:

答案 0 :(得分:14)

你问的问题没有太多细节。但是当我为文本字段使用inputAccessoryView和自定义inputView时,我遇到了同样的问题。

通过将自定义inputView的autoresizingMask设置为.flexibleHeight,在iOS11上解决了这个问题。

stdDeviation = pd.rolling_std(df['Close'], window=2, ddof=0)

希望这可以解决问题。如果没有,可能会提供更多信息?

以下是我添加输入附件的方法,如果有更多帮助(作为textfield的扩展名):

yourCustomInputView.autoresizingMask = .flexibleHeight

}

然后在 inputView (而不是 inputAccessoryView )上,我使用了日期选择器 - 只需确保日期选择器的自动调整掩码设置为灵活高度。

答案 1 :(得分:8)

PSA:如果你使用UIToolbar作为自定义视图,它在iOS 11 GM中目前已被破坏。 只需将其更改为UIView ,而不是失去头发如何修复它。 你会松开模糊效果,但它会起作用。

答案 2 :(得分:5)

Beta 3刚刚问世,有人说它解决了这个问题,但对我来说并没有。

然而,我尝试将配件视图设置为愚蠢的(100pxls高),并发现iPad上的Undo / Redo / Paste栏错误地位于我的配件栏顶部。 所以我添加了以下代码来摆脱苹果吧(无论如何我的自定义选择器毫无意义)并且问题消失了

希望这有助于某人

- (void)textFieldDidBeginEditing:(UITextField*)textField  
{  
    UITextInputAssistantItem* item = [textField inputAssistantItem];  
    item.leadingBarButtonGroups = @[];  
    item.trailingBarButtonGroups = @[];  
}  

答案 3 :(得分:3)

要避免iOS 11中针对$message_rate_array[count($message_rate_array) -1]['messages'] inputAccessoryView的{​​{1}}问题,请使用以下代码:

UITextField

答案 4 :(得分:0)

我遇到了同样的问题,我发现删除了所有bottomtopleadingtraining,{ {1}},left约束 分配了right的视图解决了它。

答案 5 :(得分:0)

UIToolBar在iOS 11中被破坏了。但你可以使用UIView作为inputAccessoryView完成同样的事情。此处的示例代码段:

CGFloat width = [[UIScreen mainScreen] bounds].size.width;
UIView* toolBar = [[UIView alloc] initWithFrame:CGRectMake(0.0f,0.0f, width, 44.0f)];
toolBar.backgroundColor = [UIColor colorWithRed:0.97f  green:0.97f blue:0.97f alpha:1.0f];

UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(20.0 , 0.0f, width, 44.0f)];
[titleLabel setFont:[UIFont fontWithName:@"Helvetica" size:13]];
[titleLabel setBackgroundColor:[UIColor clearColor]];
[titleLabel setTextColor:[UIColor redColor]];
[titleLabel setText:@"Title"];
[titleLabel setTextAlignment:NSTextAlignmentLeft];
[toolBar addSubview:titleLabel];

UIButton *doneBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[doneBtn setTitle:@"Done" forState:UIControlStateNormal];
doneBtn.tintColor = [UIColor colorWithRed:(float)179/255 green:(float)27/255 blue:(float)163/255 alpha:1];
[doneBtn.titleLabel setFont:[UIFont fontWithName:@"Helvetica" size:16]];
[doneBtn addTarget:self action:@selector(btnTxtDoneAction) forControlEvents:UIControlEventTouchUpInside];
[doneBtn setFrame:CGRectMake(width-70, 6, 50, 32)];
[toolBar addSubview:doneBtn];

[toolBar sizeToFit];

txtMessageView.inputAccessoryView = toolBar;

希望这有帮助.. :))

答案 6 :(得分:0)

Swift 4解决方案

clean bootRun -Dgrails.env=test

答案 7 :(得分:0)

以防万一有人可能仍然需要解决方案,这就是我所做的(IOS 12.1);

private func initSearchBox() {
    
    // Add Done button on keyboard      
    txtSearch.delegate = self
    let tbrDone = UIToolbar()
    let btnDone = UIBarButtonItem(title: "Done", style: .plain, target: self, action:     #selector(btnDone_tapped))
    tbrDone.items = [btnDone]
    tbrDone.sizeToFit()
    self.txtSearch.inputAccessoryView = tbrDone
        
}
    
@objc func btnDone_tapped() {

    view.endEditing(true)
        
}