【发布时间】:2026-01-09 16:20:06
【问题描述】:
我在 textView 的 inputAccessoryView 属性中使用工具栏。当键盘显示时,它会按预期显示工具栏。当设备旋转时,我想删除工具栏。我试过了:
myTextView.inputAccessoryView.hidden = !layoutIsPortrait;
这确实隐藏了工具栏,但留下了较高键盘的轮廓。键盘的大小显然仍然适合工具栏。它看起来很糟糕,并且会干扰底层响应者的触摸事件。
myTextView.inputAccessoryView = nil;
只有在我辞职FirstResponder,然后再次成为FirstResponder 时才有效。这是不可接受的。我失去了 textView 的光标位置和内容,键盘一闪一闪。
[myTextView.inputAccessoryView removefromSuperview];
什么都不做。 我在 iVar 中保存了对工具栏的引用并解决了这个问题,
[myIvarReference removeFromSuperview];
这行得通,但键盘的较高轮廓再次隐约可见。这一次它不干涉其他观点的接触。所以现在这是一个可行的解决方案,但在视觉上是不可接受的。 我还能尝试随意显示和隐藏 inputAccessoryView 吗?
屏幕截图 - 键盘上方的微弱线条是已移除工具栏的残余
【问题讨论】:
-
您介意张贴您所说的“较高键盘的轮廓”的屏幕截图吗?我觉得您提到的解决方案应该有效(至少其中一个),但我不确定您在美学上可以接受什么...
-
我添加了截图的特写
-
我现在无法测试它,但 myTextView.inputAccessoryView.frame = CGRectZero 是否符合您的要求?
-
我现在也不能尝试。我希望这与 removeFromSuperView 的结果相同。我的猜测是,需要调整大小的是包含键盘和工具栏的视图。如果不进入一些私有 api 领域,我不知道如何导致这种情况发生。
标签: iphone ios uitoolbar uikeyboard