簡體   English   中英

如何將文本字段單元格(可可中)中的文本復制到NSPasteboard?

[英]how can i copy the text in the textfield cell (in cocoa) to NSPasteboard?

我在可可粉中有一個文本框單元格和一個按鈕。 我想通過單擊按鈕在文本字段中復制文本。

在剪貼板中

 #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

在剪貼板中

 #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

我該如何更改才能做到這一點?

您實際上從未向自己發送writeToPasteboard:消息,因此您需要這樣做。 您需要向文本字段詢問其字符串值,並將其作為參數傳遞給writeToPasteboard:消息。

更好的是,只需將按鈕連接到第一響應者的copy:動作。 文本字段會對此消息做出響應,因此只要它是第一個響應者(或至少在響應者鏈中足夠高),操作消息就會命中該字段,並且該字段將自行復制文本。 有關更多信息,請參見《 可可事件處理指南》

這就是主菜單中“復制”菜單項已經起作用的方式,並且您無需編寫任何代碼即可實現菜單項或按鈕。

暫無
暫無

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

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