【问题标题】:Find Bar does not show up with WebView's Scroll View as the findBarContainer作为 findBarContainer,Find Bar 没有与 WebView 的 Scroll View 一起显示
【发布时间】:2013-08-26 16:47:48
【问题描述】:

我有一个实现 NSTextFinderClient 协议的 TextFinderController 对象,以及一个设置为 NSTextFinder 的 findBarContainer 的 WebView 的 WebDynamicScrollBarsView(它是一个 NSScrollView)。当我尝试通过将 findBarVisible 设置为 YES 来使 findBar 在 ScrollView 中可见时,我没有观察到结果。我注意到,即使在设置 findBarContainer 之后,ScrollView 的 findBarView 也是空的。我正在使用this 代码从 WebView 获取 ScrollView。这是一个 Mac 应用程序,而不是 iOS 应用程序。如何让 findBar 显示在 WebView 中?

self.textFinder = [[NSTextFinder alloc] init];
self.textFinder.client = self.textFinderController;
self.textFinder.findBarContainer = [self.webView scrollView];
[self.webView scrollView].findBarPosition = NSScrollViewFindBarPositionAboveContent;
[self.webView scrollView].findBarVisible = YES;

【问题讨论】:

    标签: objective-c cocoa nsscrollview objective-c-protocol


    【解决方案1】:

    请注意,我在这里也回答了这个问题:How do I get NSTextFinder to show up

    问题是 findBarVisible 只是通过它的容器设置栏的可见性,它实际上并没有告诉 NSTextFinder 本身它需要显示(至少,这是我对它的理解)。

    假设您的 textFinder 客户端设置正确,并且您的滚动视图类别设置正确,您仍然需要执行一个操作以使其显示。那么你应该可以让它随意出现和消失。

    [self.webView scrollView].findBarVisible = YES; 替换为

    [self.textFinder performAction:NSTextFinderActionShowFindInterface];
    

    另外,请注意,我将 NSTextFinder 作为在 XIB 文件中创建的 IBAction。我不确定这是否会阻止它出现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多