簡體   English   中英

當另一個NSTextField獲得焦點時,NSTextField應該出現

[英]NSTextField should appear when another NSTextField gets focus

我有一個NSTextField,我從NSTextField繼承了它,我希望當我的TextField獲得焦點時出現一個新的NSTextField。 我更改了方法becomeFirstResponder ,該方法也有效,因為它在日志區域中顯示“ TextField獲得焦點”。

但是外觀/消失對我的第二個TextField不起作用。 它也連接在IB中。

這是代碼:

@interface MyNewTextField : NSTextField{

IBOutlet NSTextField* TestTextFiel;
}

MyNewTextField.m:

#import "SollkontoFeld.h"
@implementation SollkontoFeld

- (void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];
}

-(BOOL)becomeFirstResponder{
  [testTextFiel setHidden:NO];
  NSLog(@"TextField got focus");  
  return YES;
}
@end

該方法顯然可以正確執行,因為已打印了文本。 我假設我的出現/消失代碼是錯誤的。

首先,應通過使第二個文本字段開始在筆尖可見,來驗證第二個文本字段是否位於正確的位置,並且具有正確的布局約束等。 調用setHidden:YES將其隱藏在方便的位置,例如awakeFromNib ,這樣一開始它就不可見; 但隨后您可以注釋掉setHidden:調用以使其在啟動時可見。 我最初的懷疑是setHidden:NO調用工作正常,但是由於某些其他原因,文本字段不可見。

除此之外,您只需要檢查所有連接是否良好,對象是否保留等即可。我注意到您發布的代碼聲明了一個名為TestTextFiel的出口,然后在testTextFiel上調用setHidden: testTextFiel這是不一樣的–大小寫很重要。 您可能只是在您的becomeFirstResponder方法中添加了一個testTextFielNSLog來驗證它是否存在; 如果是這樣,您可以NSLogsuperview 等。調試。 做一些偵探工作,找出問題所在。 你打電話后setHidden:NO ,文本字段應該存在,有權上海華盈,有一個無意義的幀,返回NO-hidden等; 您可以在調試器中驗證所有這些內容。 如果仍然無法繪制,也許您需要調用setNeedsDisplay:盡管我認為這沒有必要。 無論如何,對於stackoverflow來說,我們實際上不可能為您完成調試工作。 這是您需要學習的編程基本技能。 :->

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM