草庐IT

delegating-constructor

全部标签

ios - Objective C 委托(delegate)或 C 风格的 block 回调?

我正在设计一个类,只要有事情发生,它就会“触发事件”。这些事件往往与UI无关。我想知道这样做的最佳方法是什么。我一直在探索:委托(delegate)我将定义一个委托(delegate)类,在init函数中接受委托(delegate),并在事件发生时调用委托(delegate)类上的方法。C风格block我将定义一个函数指针,并在init函数中接受一个函数。我会在事件发生时调用它。在这两种情况下,我可能需要处理多个“源”,因此我需要一组委托(delegate)或block。我注意到在iOS编程中,委托(delegate)往往更受青睐,尤其是对于UI框架。但我来自函数式编程背景,我绝对乐于

ios - 如何将界面构建器中文本字段的委托(delegate)设置为 "files owner"?

我正在尝试实现:-(BOOL)textFieldShouldReturn:(UITextField*)textField方法。由于某种原因,它没有被调用。我已将文本字段设置为代码中的第一响应者。我知道我还需要将界面生成器中文本字段的委托(delegate)设置为“文件所有者”。怎么做到的?谢谢! 最佳答案 如果您已将UITextField声明为IBOutlet属性,则只需在viewDidLoad中添加以下行:self.myTextField.delegate=self或者,您可以在Storyboard中完成。

objective-c - IOS:两个具有两种不同委托(delegate)方法的 UIAlert

我有一个UIAlertUIAlertView*alertView=[[UIAlertViewalloc]initWithTitle:@"ok"message:@"Canc?"delegate:selfcancelButtonTitle:@"OK"otherButtonTitles:@"Annul",nil];[alertViewshow];[alertViewrelease];及其委托(delegate)方法:-(void)alertView:(UIAlertView*)alertViewclickedButtonAtIndex:(NSInteger)buttonIndex{if(bu

objective-c - 在 ios6 中,将 pageViewController 的 gestureRecognizers 委托(delegate)设置为 viewController 会导致崩溃

这在ios6中才开始发生,但如果你使用页面ViewController模板开始一个新项目。然后在PCRootViewControlle::viewDidLoad()将这些行添加到方法的底部。for(UIGestureRecognizer*gRinself.pageViewController.gestureRecognizers){gR.delegate=self;}您需要分配viewController以使其符合UIGestureRecognizerDelegate并实现该方法-(BOOL)gestureRecognizer:(UIGestureRecognizer*)gesture

iOS - Storyboard - 委托(delegate)弹出

我在我的ipad应用程序中使用Storyboard,并且能够成功地进行转换、使用segues等。目前,我在单击按钮时显示弹出式ViewController。我想检测弹出窗口何时消失。我该怎么做? 最佳答案 这是我做的:-(void)prepareForSegue:(UIStoryboardSegue*)seguesender:(id)sender{if([[segueidentifier]isEqualToString:@"popover"]){UIStoryboardPopoverSegue*pop=(UIStoryboardPo

ios - 在 UITextView 上更改文本时是否有委托(delegate)调用?

当我像这样以编程方式设置我的UITextView时:[self.textViewsetText:@""];委托(delegate)方法textViewDidChange:不会被调用。有没有一种方法可以让我不创建UITextView子类? 最佳答案 使用代码手动设置UITextView的文本时,不会调用textViewDidChange:方法。(不过,如果您设置了TextView的delegate,它会在用户编辑它时被调用。)一种可能的解决方法是在您编辑文本时手动调用textViewDidChange:。例如:[self.textVi

iphone - 有没有简单的方法来处理 UIAlertView 结果而无需委托(delegate)?

我有一个显示带有是/否按钮的UIAlertView的函数,它仅在函数范围内使用,因此我不想实现委托(delegate)来捕获用户反馈。有没有什么方法可以知道用户在没有实现UIAlertViewDelegate的情况下点击了什么按钮,比如:[alertshow];if([alertindexOfClickedButton]==indexOfYes){....}或动画中的lambda表达式 最佳答案 没有办法完全避免委托(delegate),但您可以按照以下方式创建一个包装器来实现这种效果:@interfaceMyAlertViewDe

ios - 如何从 Storyboard 设置 Split View Controller Delegate?

我拖出了一个splitViewController,并将其标识为我创建的MySplitViewController的子类。当右键单击splitviewStoryboard时,我可以看到我已经设置了它的主视图Controller和详细ViewController,而且还没有设置委托(delegate)。我已经让我的子类符合协议(protocol)并实现了一些方法,但是它们没有被调用(我不明白是因为没有设置委托(delegate))。但是每当我尝试按住ctrl并从Storyboard中的委托(delegate)选项拖动到我的类(class)时,它都不会链接起来。事实上,它不会与任何东西联系

objective-c - 用 block 替换委托(delegate)方法的最佳技术

我正在寻求创建一个类别来用许多简单的iOSAPI的回调block替换委托(delegate)方法。类似于NSURLConnection上的sendAsycblock。有2种技术不会泄漏并且似乎工作正常。各自的优点/缺点是什么?有没有更好的办法?选项1.使用类别在具有外部回调block作用域的NSObject上实现委托(delegate)的回调方法。//AddcategoryonNSObjecttorespondtothedelegate@interfaceNSObject(BlocksDelegate)-(void)alertView:(UIAlertView*)alertViewcl

java - 如何在 spring 集成中自定义或委托(delegate) TcpNetClientConnectionFactory 作为 TCP 连接池

我正在尝试使用类TcpNetClientConnectionFactory实现/委托(delegate)我自己的TCP连接池用于客户端TCP连接。下面是我的bean定义,我已经将它注入(inject)到我的出站适配器中。我还使用ThreadLocal获取消息附带的动态主机,以便我能够与工厂进行通信。我想让连接工厂(TcpNetClientConnectionFactory的子类)根据消息中提供的主机再次创建/构建新连接。不过,我不知道这种情况下的最佳实践或方法是什么。如果有人可以提供帮助,我们将不胜感激。这是TcpNetClientConnectionFactory的构造函数:publ