cocoa - netServiceBrowser DidStop 搜索未调用

标签 cocoa

我现在正在编写一个Bonjour服务监听器类,根据文档here:

目前,它似乎有效,我可以正确接收“netServiceBrowserWillSearch:”和“didFindService:moreComing:”。然而,经过漫长的等待,我无法收到“netServiceBrowserDidStopSearch:”或“netServiceBrowser:didNotSearch:”。因此,我不知道我的委托(delegate)类现在是停止显示某些 UI 的适当时间。

有人对此有什么想法吗?谢谢。

最佳答案

NSNetServiceBrowser 不会停止浏览(并调用 -netServiceBrowserDidStopSearch: 委托(delegate)方法),除非您通过调用 -stop 明确告知它。找到初始服务后,当新的匹配服务添加或旧服务消失时,它会继续通知您。

您如何处理此问题取决于您希望应用程序的行为方式。如果您有一个持续显示可用服务的窗口(例如 iChat 中的 Bonjour 窗口),那么最好让它继续,并不断更新列表以响应委托(delegate)消息。如果您有一个更像是填充的对话框,然后在用户做出选择后消失(例如,像系统“添加打印机...”对话框),那么您希望在显示时保持浏览器运行,然后调用 -stop 一旦用户关闭它。如果您只是等待查找一项特定服务,那么您可以在找到并解决该服务后调用 -stop

关于cocoa - netServiceBrowser DidStop 搜索未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2696049/

相关文章:

macos - NSButton attributeTitle 在按钮按下时改变颜色

ios - 针对 iOS 3.0 和 armv6/armv7 的应用程序的无效二进制架构

cocoa - Cocoa 中保存唯一文件的默认位置

iphone - 使用 AVQueuePlayer 强制/尊重 PlayItem 之间所需的间隙

swift - NSTextField:如何检测字符串何时太长?

xcode - 从初始 VC 过渡后,Cocoa App 不会退出

cocoa - 如何制作 cocoa 披露三角

swift - OS X 中 iOS 的 UIImagePNGRepresentation() 的等效项是什么?

macos - 使用绑定(bind)时将 NSPopUpButton 内容与标签分开

objective-c - 为什么在实现我自己的 KVC setter/getter 方法时会出现未捕获的异常