- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我将 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/
我正在尝试在 SwiftUI 中的 TextField 上实现一个 inputAccessoryView。目标是在键盘上方出现一个“完成”按钮,按下该按钮时会摆脱键盘(即 resignFirstRes
我已添加 InputAccessoryView到我的键盘消失。它炒得很好。但在某些 ViewController它没有出现。即使那个方法也不会调用。 我有一个按钮。当我点击我的文本字段时,它会自动成为
自从我升级到 Xcode 5.1 后,我的 inputAccessoryView 出现了问题。 如您在附图中所见,按键在 inputAccessoryView 内的工具栏后面弹出。我认为它与新版本的
我正在为 UITextField 和 UIToolbar 设置一个 datepicker 来代替键盘。我希望能够关闭 accessoryView,但它没有正常运行。虽然我按下了 Done 按钮,但没有
我有一个 Objective-C 项目,我想在其中添加一个 inputAccessoryView 到 UITextView 的子类。老办法是 self.myTextView.inputAccessor
我已经看过了this solution .我已经创建了一个显示错误的示例项目。 该 View 只有一个 UITextField。 这是我的代码: class ViewController: UIVie
Problem relates to this.我正在尝试使用我制作的自定义 View ,它有两个 TextField 输入和一个按钮,我使用 IB 它的 xib 制作它,我将它放在我的 Storyb
今天早上,我正在查看我在某个地方找到的一些旧代码(并在应用程序中使用),这些代码破解了 UIAlertView 以便从用户那里获取一串输入。出于这个目的,它有点矫枉过正,看起来很傻,但我从未见过更简单
我正在尝试复制 Facebook Messenger 应用程序,其中有一个 UITextView 附加到键盘顶部。 由于此应用的性质,我需要附加我的 View ,而不是在出现键盘时手动上下滚动Scro
是否可以在键盘上方创建 inputAccessoryView,用于拆分模式下的屏幕全宽?系统会自动调整其大小以适合应用程序框架。这是 iOS 中的错误吗? 最佳答案 您可以使用此方法检测您的键盘是否处
知道如何让 inputAccessoryView 锚定到标签栏而不是屏幕底部吗? 我创建了一个 UIViewController 并覆盖了以下方法: -(BOOL)canBecomeFirstResp
我正在尝试创建一个类似于 iOS 消息传递应用程序的消息传递界面。我正在努力解决的部分是覆盖 inputAccessoryView(在 View Controller 上)对我没有影响。 如果您查看下
我正在尝试添加带有“完成”按钮的 UIView 作为文本字段的输入附件 View 。 let view = UIView() let doneButton = UIBu
UISearchBar 似乎将 inputAccessoryView 作为 readOnly 属性。如何使用我自己的 customToolbar 进行设置? 最佳答案 编辑:如以下评论中所述,这不再是
我在 textView 的 inputAccessoryView 属性中使用工具栏。当键盘显示时,它会按预期显示工具栏。旋转设备时,我想删除工具栏。我试过: myTextView.inputAcce
我正在尝试实现与 Apple 消息应用中底部文本输入栏类似的定位行为。 我尝试了很多方法,到处搜索,有很多类似的问题,但没有一个是令人满意的。 要指定: 在 View 底部有一个UIToolbar 工
我已经为我的应用程序中的某些 UITextFields 添加了一个 inputAccessoryView 到 iOS 键盘。这个附件 View 为用户提供了基本功能(一些按钮在我的应用程序的其他地方没
我正在以模态方式呈现一个 UIViewController,该 View 包含各种 UITextFields。我已经重写了模态视图 InputAccessoryView,以便它显示一个简单的 View
全部, 我的 UITextView 上附加了一个可滚动的 InputAccessoryView。创建如下: 创建一个 UIScrollView 添加一个水平 UIStackView。 将堆栈 View
我有一个简单的 UIViewController,其中包含一些对象:一个 UITextView 和一个作为 InputAccessoryView 添加到 UTextView 的 UIToolBar。当
我是一名优秀的程序员,十分优秀!