jjzjj

uiresponder

全部标签

ios - 如何使用SwiftUI在多个屏幕上获取键盘高度并移动按钮

以下代码获取键盘显示时的键盘高度,并将按钮移动键盘高度。此移动在转换源(ContentView)和转换目标(SecibdContentView)中以相同的方式执行,但按钮不会在转换目标处移动。如何让按钮在多个屏幕上移动相同?importSwiftUIstructContentView:View{@ObservedObjectprivatevarkeyboard=KeyboardResponder()varbody:someView{NavigationView{VStack{Text("ContentView")Spacer()NavigationLink(destination:Se

ios - 后台应用程序的响应者链是什么样的?

如果音频应用程序配置为在后台播放音频,您可以将其设置为接收远程控制事件。Apple的文档描述了什么是必要的以及如何设置它。其中一个关键方面是确保接收和响应远程控制事件的对象能够(并且将会)成为第一响应者。当应用程序在后台运行时,响应链是什么样子的。我熟悉响应者链及其运作方式,但我如何知道哪些对象是响应者链的一部分,以及当应用程序处于后台时哪个对象成为第一响应者? 最佳答案 由于应用程序在后台运行,因此键和主窗口为nil,因此它们不包含在响应链中。然后,响应者链仅包含应用程序实例及其委托(delegate)。这对我来说是个问题,因为我

ios - UIScrollView:仅在允许时滚动

我一直在尝试只拥有我的UIScrollView向一个方向滚动并仍然获得所有UITouch事件。我完全不确定这是否可能。我试图覆盖UIResponder的“接触”事件,但一旦UIScrollView开始滚动,touches方法停止被调用。然后我尝试设置UIScrollView的scrollEnabled属性为false,直到我想要UIScrollView开始接收拖动事件,但我似乎无法找到一种方法来获得UIScrollView在拖动过程中开始接收触摸事件。这可能吗?我的下一次尝试是在ScrollView中添加“填充”并通过使用contentOffset创建我自己的“触摸事件”属性,但开始调

ios - 我可以打电话 - (void)touchesBegan :(NSSet *)touches withEvent:(UIEvent *)event on subview

我在我的View中识别触摸-如果某些情况发生我想用这个方法调用我的subview但它不起作用-(如果我不覆盖hittestWithEvent-这个View将被返回)我该怎么做?编辑:我想让原来的SUBVIEW得到“点击”,所以我尝试这样做:-(void)didTap:(MyTapGesture*)tap{//theoriginalviewthatwouldhavebeenreturnedbyhittest.couldbeanyarbitraryviewUIView*theView=[superhitTest:[taplocationInView:self]withEvent:nil];

iOS 在其 subview 中接收父 View 的触摸事件

问题:有没有办法在它的subview中直接接收来自superView的触摸(即在subview边界之外的触摸)?我想避免委托(delegate)(正式/非正式)、NSNotification、代理或任何其他中间解决方案将触摸事件从一个View转发到另一个View。 最佳答案 这样就可以了。覆盖subview中的pointInside。希望足够直接满足您的要求。-(BOOL)pointInside:(CGPoint)pointwithEvent:(UIEvent*)event{point=[selfconvertPoint:point

ios - 防止 subview Controller 上未处理的触摸事件传递到容器 View

我有一个容器ViewController管理它自己的全屏内容View,并附有几个手势识别器。subviewController可以覆盖在屏幕的一部分上;它的RootView是一个提供不透明背景颜色的UIView,它被一个UIScrollView覆盖,而UIScrollView又包含堆栈View等的复杂View层次结构。在subview中滚动工作正常,任何用户与其subview的交互也是如此。我遇到的问题是ScrollView本身(即不在其任何subview内)上的任何点击或其他非滚动手势都会穿过它后面的空UIView并且意外地被RootView上的手势识别器处理父(容器)Control

iphone - 如何以编程方式关闭键盘?

我需要一种方法来确定当前在View中选择的UITextField。如果不传递引用或标签,这可能吗?更具体地说,我需要知道选择了哪个UITextField以便我可以隐藏键盘。我需要这个的原因是因为我想创建一个UIToolbar作为输入附件添加到所有UITextField。在这个UIToolbar上,我将添加一个“完成”按钮,当按下这个按钮时,应该会隐藏当前选定的UITextField的键盘。 最佳答案 我假设您的意思是您想知道哪个UITextField是第一响应者(这是从键盘获取输入的文本字段)。对此没有公共(public)API(尽

ios - 如何将自定义按钮添加到我的键盘?

我想在我的应用程序中有这样的键盘:如何实现?如何添加带有多个突击队的行? 最佳答案 通过实现inputAccessoryView添加按钮对于UIResponder. 关于ios-如何将自定义按钮添加到我的键盘?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12467441/

ios - 自定义 UIResponder 子类

是否可以设置自定义的UIResponder子类?我需要为UIEvent(特别是远程控制事件)实现一个监听器,该监听器将在整个应用程序的生命周期中传递。如果可能的话,我尽量避免使用UIViewController(将在某个时候被释放)和AppDelegate(如果可能的话,我不想给它增加负担)。 最佳答案 显然,您可以将UIResponder子类化,并且您可以创建该子类的实例。问题是将该实例放入响应链中,以便实际调用其UIResponder方法,并且响应链的其余部分不会中断。这可能是可能的——我当然在桌面上的Cocoa中做过,虽然从来

ios - 如何处理 UIView 中的点击事件

我正在编写一个简单的纸牌游戏,现在我想让卡片成为其中的一部分。我所有的卡片都是UIView对象,其中有2个UIImageView来显示卡片的背面或正面.我想处理鼠标点击,但我真的不知道该怎么做。有接口(interface)可以添加吗?谢谢! 最佳答案 您可以制作卡片按钮(也许不是最佳解决方案)并在代码中处理按钮事件。您可以在卡片或superView上使用手势识别器。您可以使每张卡片成为UIView的子类并覆盖UIResponder处理触摸事件的方法。或者你可以变得非常棘手并制作卡片CALayers,并且只处理父View中的UIRes