iOS - UIToolBar作为UITextView的inputAccessoryView

Pet*_*rbo 7 keyboard uitextview ios

我为a 添加了一个UIToolBar带有UIBarButtonIteminputAccessoryView的UITextView.它工作正常,但UIBarButtonItem可以在它的框架外触摸,也许在右边外面50像素.这没什么大不了的,但它让我很烦.谁知道为什么?

这是我的代码(ARC):

UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, self.view.bounds.size.height, 320, 44)];
toolBar.barStyle = UIBarStyleBlack;
toolBar.translucent = YES;

UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneWriting:)];
[toolBar setItems:[NSArray arrayWithObjects:doneButton, nil]];

self.messageTextView.inputAccessoryView = toolBar;
Run Code Online (Sandbox Code Playgroud)

rad*_*dau 7

在iOS 6中,它看起来像预期的那样.不错的提示:如果您希望按钮显示在右侧而不是左侧,请使用以下方法之一:

UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
Run Code Online (Sandbox Code Playgroud)

然后用以下内容初始化工具栏:

[toolBar setItems:[NSArray arrayWithObjects:flexibleSpace, doneButton, nil]];
Run Code Online (Sandbox Code Playgroud)


T.J*_*.J. 2

如果工具栏中没有其他附近的按钮,工具栏似乎会将按钮的活动区域扩展到其范围之外。苹果工程师肯定认为,最好尝试猜测用户想要按的位置,而不是根本不做出反应。