inputAccessoryView 不会在调用后自动出现 "reloadInputViews"
inputAccessoryView doesn't appear automatically after call "reloadInputViews"
首先,我将名为 MyTextEditorView 的 UIView 子类化,以将其 inputAccessoryView 覆盖为可读写 属性。
@属性(保留,读写)UIView *inputAccessoryView;
并且我初始UIInputView作为显示视图,然后添加一个UIView作为子视图;
UIInputVIew *myInputAccessoryView = [[UIInputView alloc] initWithFrame:CGRectMake(0,0,screenWidth,44)];
[myInputAccessoryView addSubview:myDisplayView];
[self setInputAccessoryView:myInputAccessoryView];
[self reloadInputViews];
并且我已经为 return 覆盖了 canBecomeFirstResponder YES;
- (BOOL)canBecomeFirstResponder
{
return YES;
}
当我第一次在我的 viewController1 中初始化 MyTextEditorView 并使其成为第一响应者时,然后 inputAccessoryView 自动 appear.But 当我从这个 viewController1 推送另一个 viewController2 并返回到 viewController1 时,inputAccessoryView 不会自动出现在使它成为第一响应者。
但是,当我添加如下代码时:
UIInputVIew *myInputAccessoryView = [[UIInputView alloc] initWithFrame:CGRectMake(0,0,screenWidth,44)];
[myInputAccessoryView addSubview:myDisplayView];
[self setInputAccessoryView:myInputAccessoryView];
[self resignFirstResponder];
[self reloadInputViews];
[self becomeFirstResponder];
之后,这个inputAccessoryView可以自动出现在任何case.But这让我很困惑,谁能帮我提出为什么inputAccessoryView不能自动出现?提前谢谢!!!
我在 iOS7 和 iOS8 上测试了这个问题。我发现它是一个 iOS8 bug.After 我在 iOS8 平台上用 UIAlertController 替换了 UIActionSheet,效果很好。
我猜 UIActionSheet 作为 UIView 的子类不同于 UIAlertController 作为 UIViewController 的子类,这可能与我的编辑器冲突
首先,我将名为 MyTextEditorView 的 UIView 子类化,以将其 inputAccessoryView 覆盖为可读写 属性。
@属性(保留,读写)UIView *inputAccessoryView;
并且我初始UIInputView作为显示视图,然后添加一个UIView作为子视图;
UIInputVIew *myInputAccessoryView = [[UIInputView alloc] initWithFrame:CGRectMake(0,0,screenWidth,44)];
[myInputAccessoryView addSubview:myDisplayView];
[self setInputAccessoryView:myInputAccessoryView];
[self reloadInputViews];
并且我已经为 return 覆盖了 canBecomeFirstResponder YES;
- (BOOL)canBecomeFirstResponder
{
return YES;
}
当我第一次在我的 viewController1 中初始化 MyTextEditorView 并使其成为第一响应者时,然后 inputAccessoryView 自动 appear.But 当我从这个 viewController1 推送另一个 viewController2 并返回到 viewController1 时,inputAccessoryView 不会自动出现在使它成为第一响应者。
但是,当我添加如下代码时:
UIInputVIew *myInputAccessoryView = [[UIInputView alloc] initWithFrame:CGRectMake(0,0,screenWidth,44)];
[myInputAccessoryView addSubview:myDisplayView];
[self setInputAccessoryView:myInputAccessoryView];
[self resignFirstResponder];
[self reloadInputViews];
[self becomeFirstResponder];
之后,这个inputAccessoryView可以自动出现在任何case.But这让我很困惑,谁能帮我提出为什么inputAccessoryView不能自动出现?提前谢谢!!!
我在 iOS7 和 iOS8 上测试了这个问题。我发现它是一个 iOS8 bug.After 我在 iOS8 平台上用 UIAlertController 替换了 UIActionSheet,效果很好。 我猜 UIActionSheet 作为 UIView 的子类不同于 UIAlertController 作为 UIViewController 的子类,这可能与我的编辑器冲突