हारून हिलेग्रास 'मैक ओएस एक्स के लिए कोको प्रोग्रामिंग, अध्याय 9, "सम्मिलन पर प्रारंभ संपादन" नामक अनुभाग, वह बताता है कि वास्तव में यह कैसे करना है। हालांकि मुझे उलझन में यह बात यह थी कि उसने गुच्छा अन्य सामानों के साथ किया था। यहाँ पूर्ण कोड सूची है:मैक ओएस एक्स_ अध्याय 9 के लिए हारून हिलेगैस _Cocoa प्रोग्रामिंग
- (IBAction)createEmployee:(id)sender
{
NSWindow *w = [tableView window];
// Try to end any editing that is taking place
BOOL editingEnded = [w makeFirstResponder:w];
if (!editingEnded) {
NSLog(@"Unable to end editing");
return;
}
NSUndoManager *undo = [self undoManager];
// Has an edit occurred already in this event?
if ([undo groupingLevel]) {
// Close the last group
[undo endUndoGrouping];
// Open a new group
[undo beginUndoGrouping];
}
// Create the object
Person *p = [employeeController newObject];
// Add it to the content array of 'employeeController'
[employeeController addObject:p];
[p release];
// Re-sort (in case the user has sorted a column)
[employeeController rearrangeObjects];
// Get the sorted array
NSArray *a = [employeeController arrangedObjects];
// Find the object just added
int row = [a indexOfObjectIdenticalTo:p];
NSLog(@"starting edit of %@ in row %d", p, row);
// Begin the edit in the first column
[tableView editColumn:0
row:row
withEvent:nil
select:YES];
}
मैं इस बारे में दो प्रश्न हैं:
1) कैसे आप जानते हैं कि यह सब सामान क्या करना चाहिए रहे हैं? क्या ऐप्पल के डॉक्टर में कोई 'चेकलिस्ट' या कुछ है? अनुभव?
2) क्या यह किसी भी सरणी नियंत्रक के पूरे उद्देश्य को पराजित नहीं करता है यदि आपको अभी भी सभी विधियों को फिर से लिखना है?
संपादित करें: मैं मुख्य रूप से सोच रहा हूँ कैसे वह में इन पंक्तियों डाल करने के लिए पता था: (के बाद से सब कुछ बहुत बुनियादी और स्पष्ट है)
NSWindow *w = [tableView window];
// Try to end any editing that is taking place
BOOL editingEnded = [w makeFirstResponder:w];
if (!editingEnded) {
NSLog(@"Unable to end editing");
return;
}
NSUndoManager *undo = [self undoManager];
// Has an edit occurred already in this event?
if ([undo groupingLevel]) {
// Close the last group
[undo endUndoGrouping];
// Open a new group
[undo beginUndoGrouping];
}
यह एक अच्छा सवाल है, और मैं मानता हूं कि पुस्तक में पर्याप्त रूप से समझाया नहीं गया है। जैसा कि कुछ उत्तरों बताते हैं, यह वास्तव में किसी भी चीज़ से अधिक अनुभव करने के लिए नीचे आता है। –