OK按钮在鼠标时的行为不同
我有一个NSTextField控件,一个确定按钮和一个取消按钮的模式表。 OK按钮绑定到我的控制器类中名为theSheetOK的操作方法。 我还将NSTextField控件绑定到我的控制器(文件所有者)中名为foo的NSString成员,并使用键值绑定来读取用户输入的文本值(例如,绑定检查器中的文本字段的模型键路径设置为foo) 。
如果输入文本并且用户通过键盘击中确定按钮,所有工作都会正常。 当我在theSheetOK处理程序中使用NSLog跟踪foo的值时,我看到了我刚刚在文本字段中输入的值。
但是,当我用鼠标点击确定按钮时,foo的值被记录为空,当我单击确定按钮时,文本字段控件抓住焦点,并且我键入的文本显示为选中状态。 任何想法出了什么问题?
@interface MyController : NSWindowController {
@private
NSString *foo;
}
@property (copy, readwrite)NSString* foo;
-(IBAction) theSheetOK:(id)sender;
-(IBAction) theSheetCancel:(id)sender;
@end
...
#import "MyController.h"
@implementation MyController
@synthesize foo;
-(IBAction) theSheetOK:(id)sender
{
NSLog(@"theSheetOK");
NSLog(@"foo= %@", foo);
...
NSWindow* theSheet = [self window];
[NSApp endSheet:theSheet returnCode: NSOKButton];
[theSheet orderOut:nil];
有时你需要按回车来确认可可绑定的改变。 我不确定,但有可能在您进入时同时执行更改和按钮操作。
如果是这样,请选择您的NSTextField并将选项标记为“连续更新值”,以便正确同步。
链接地址: http://www.djcxy.com/p/85265.html