したがって、writeToFileというアクションにアタッチされたボタンがあります。
このアクションによりNSPanelが開き、ユーザーはデスクトップに書き込みたいファイルの名前を入力できます。
私が抱えている問題は、ユーザーを更新できず、NSPanelが閉じる前に書き込みが成功したことをユーザーに知らせることができないことです。
NSPanel内のMacアプリについて話しているので、ラベルまたはNSTextFieldを配置し、NSTextFieldが更新され、書き込みが成功したことをユーザーに通知します。
アクションwriteToFile:に添付されているボタンのタイトルを「閉じる」に変更し、performSelectorを使用してボタンが実際に呼び出すメソッドを変更しようとしています。
しかし、私は「認識されないセレクター」を取得し続けます
ここにいくつかのコードがあります、すべての助けは大歓迎です:
- (void) closePanel {
[theSheet close];
}
- (IBAction) writeToFile: (id)sender
{
if ([_nameOfFile.stringValue length] > 0) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDesktopDirectory, NSUserDomainMask, YES);
NSString *path = [[paths objectAtIndex:0]stringByAppendingPathComponent:_nameOfFile.stringValue];
NSString *string = _inputTextView.string;
BOOL OK = [string writeToFile:path
atomically:YES
encoding:NSUTF8StringEncoding
error:NULL];
if (OK) {
_statusField.stringValue = @"File written to desktop";
_writeButton.title = @"close";
[_writeButton performSelector:@selector(closePanel)];
} else {
_statusField.stringValue = @"Sorry, something went wrong :(";
}
} else {
_statusField.stringValue = @"Please name the file first!";
}
}