1

我在 cocoa 中有一个文本字段单元格和一个按钮。我想通过单击按钮复制文本字段中的文本。

在剪贴板.h

 #import <Cocoa/Cocoa.h>


 @interface clipboard:NSObject {
  IBOutlet id but1;
  IBOutlet id numf2_1;
  NSPasteboard *pasteBoard;
  }
    - (BOOL) writeToPasteBoard:(NSString *)stringToWrite;
    - (NSString *) readFromPasteBoard;
    - (id) init;
    //- (IBAction) insert_cb:(id)sender;
 @end

在剪贴板.m

 #import "clipboard.h"
 //@implementation clipboard
 @implementation clipboard
  //- (IBAction) insert_cb:(id)sender{

 - (id) init
  {
    [super init];
     pasteBoard = [NSPasteboard generalPasteboard];
     return self;
  }

  - (BOOL) writeToPasteBoard:(NSString *)stringToWrite
  {

   [pasteBoard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil];
    return [pasteBoard setString:stringToWrite forType:NSStringPboardType];
   }

   - (NSString *) readFromPasteBoard
  {
   return [pasteBoard stringForType:NSStringPboardType];
  }
  @end

我怎样才能改变这个来做到这一点?

4

1 回答 1

1

您实际上从未向自己发送writeToPasteboard:消息,因此您需要这样做。您需要向文本字段询问其字符串值并将其作为参数传递给writeToPasteboard:消息。

更好的是,只需将按钮连接到第一响应者的copy:操作。文本字段响应此消息,因此只要它是第一个响应者(或至少在响应者链上足够高),操作消息将命中该字段并且该字段将自行复制文本。有关更多信息,请参阅Cocoa 事件处理指南

这就是主菜单中的 Copy 菜单项已经工作的方式,这就是您无需编写任何代码来实现菜单项或按钮的方式。

于 2010-08-03T12:03:08.720 回答