菜鸟教程小白 发表于 2022-12-13 15:57:25

objective-c - 在没有 View Controller 的情况下使用 xib


                                            <p><p>我需要创建几个类似的 View <br/>
以一种简单的方式,我在 xib 中创建了一些 View (每个全屏)</p>

<p>我有一个 ViewController 来使用这个 xib 的 View ,代码如下:</p>

<pre><code>NSArray* views = [ loadNibNamed:@&#34;MyXibName&#34; owner:nil options:nil];
];
</code></pre>

<p>此时, View 显示正常。</p>

<p>现在,这些 View 中有一些按钮,所以我为每个 View 连接了一个 socket </p>

<p><strong>坏事发生了</strong> </p>

<p>应用程序因 </p> 而崩溃

<blockquote>
<p><strong>uncaught exception &#39;NSUnknownKeyException&#39;, reason: &#39;[&lt;NSObject 0x969db50&gt; setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key</strong></p>
</blockquote>

<p>分析:<br/>
虽然我的 xib 文件的“文件所有者”已经设置,但是 xib 和唯一的 ViewController 之间没有任何联系。 </p>

<p>如何获得 View 按钮的指针? </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>你可以这样做:</p>

<pre><code>NSNib*      aNib = [ initWithNibNamed:@&#34;MyGreatNib&#34; bundle:nil];
NSArray*    topLevelObjs = nil;

for (SomeClass *obj in myOwnerObjects) {
    topLevelObjs = nil;

    if (!)
    {
      NSLog(@&#34;Warning! Could not load nib file.\n&#34;);
      return;
    }

    for (id topLevelObj in topLevelObjs) {
      if (]) {
            NSView *otView = (NSView *)topLevelObj;
            // set frame...
            ;
      }
    }
}   
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于objective-c - 在没有 ViewController 的情况下使用 xib,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/12157689/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/12157689/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: objective-c - 在没有 View Controller 的情况下使用 xib