gpt4 book ai didi

ios - 旋转设备时,我应该如何调整 inputAccessoryView 的大小?

转载 作者:可可西里 更新时间:2023-11-01 03:33:18 24 4
gpt4 key购买 nike

我将 UIToolbar 附加到我的 UITextView 作为它的 inputAccessoryView 以添加一个按钮来关闭键盘。这很好用,并且当设备处于纵向模式时它看起来是正确的。但是当设备处于横向模式时,我无法弄清楚如何将工具栏的大小调整为用于工具栏的较低高度。

我在我的 TextView 委托(delegate)的 -textViewShouldBeginEditing: 方法中添加工具栏:

if (!textView.inputAccessoryView) {
UIToolbar *keyboardBar = [[UIToolbar alloc] init];
keyboardBar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
keyboardBar.barStyle = UIBarStyleBlackTranslucent;

UIBarButtonItem *spaceItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(dismissKeyboard:)];
[keyboardBar setItems:[NSArray arrayWithObjects:spaceItem, doneButton, nil]];
[spaceItem release];
[doneButton release];

[keyboardBar sizeToFit];

textView.inputAccessoryView = keyboardBar;
[keyboardBar release];
}

不过,我在横向模式下从这段代码中得到了奇怪的行为。如果我在横向模式下开始编辑,工具栏具有横向高度,但“完成”按钮被绘制在屏幕的一半之外。如果我随后旋转到纵向模式,“完成”按钮会绘制在正确的位置,并且当我旋转回横向模式时它会保持在正确的位置。

如果我在纵向模式下开始编辑,工具栏会以纵向高度绘制,但“完成”按钮会绘制在正确的位置。如果我然后旋转到横向模式,工具栏保持纵向高度,但完成按钮至少仍然绘制在正确的位置。

关于如何在设备旋转时调整大小的任何建议?我真的希望有一种比在 View Controller 的旋转事件中手动插入高度魔数(Magic Number)更自动的方法。

最佳答案

这是一个棘手的问题。我过去通过在旋转后放置附件 View 时调整框架来解决这个问题。尝试这样的事情:

@interface RotatingTextInputToolbar : UIToolbar
@end

@implementation RotatingTextInputToolbar

- (void) layoutSubviews
{
[super layoutSubviews];
CGRect origFrame = self.frame;
[self sizeToFit];
CGRect newFrame = self.frame;
newFrame.origin.y += origFrame.size.height - newFrame.size.height;
self.frame = newFrame;

}
@end

并在上面的代码中使用 RotatingTextInputToolbar 而不是 UIToolbar

关于ios - 旋转设备时,我应该如何调整 inputAccessoryView 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8140520/

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