gpt4 book ai didi

ios - 使用 UIScrollViewKeyboardDismissModeInteractive 移动栏

转载 作者:IT王子 更新时间:2023-10-29 08:05:17 35 4
gpt4 key购买 nike

我有一个固定在键盘顶部的文本字段。我无法使用 inputAccessoryView,因为它始终显示。我能够观察到键盘隐藏/显示的通知以使用键盘上下移动它,但这似乎不适用于 UIScrollViewKeyboardDismissModeInteractive。有没有办法获得关于键盘位置的持续反馈以同步动画?

最佳答案

编辑:看来这在 iOS 8 中不起作用,伙计们——抱歉!我也在寻找新的解决方案

我通过创建一个不可见的 inputAccessoryView 解决了这个问题。

textView.inputAccessoryView = [[MJXObservingInputAccessoryView alloc] init];

accessoryView 观察其父 View 的框架并发布一个您可以匹配的通知。

static NSString * const MJXObservingInputAccessoryViewSuperviewFrameDidChangeNotification = @"MJXObservingInputAccessoryViewSuperviewFrameDidChangeNotification";

@interface MJXObservingInputAccessoryView : UIView @end

@implementation MJXObservingInputAccessoryView

- (void)willMoveToSuperview:(UIView *)newSuperview
{
if (self.superview)
{
[self.superview removeObserver:self
forKeyPath:@"frame"];
}

[newSuperview addObserver:self
forKeyPath:@"frame"
options:0
context:NULL];

[super willMoveToSuperview:newSuperview];
}

- (void)observeValueForKeyPath:(NSString *)keyPath
ofObject:(id)object
change:(NSDictionary *)change
context:(void *)context
{
if (object == self.superview && [keyPath isEqualToString:@"frame"])
{
[[NSNotificationCenter defaultCenter] postNotificationName:MJXObservingInputAccessoryViewSuperviewFrameDidChangeNotification
object:self];
}
}

@end

关于ios - 使用 UIScrollViewKeyboardDismissModeInteractive 移动栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19118921/

35 4 0